3 command-line alias paths filename
我有我的机器上的多个文件夹,许多这些文件夹中有在其中更多的文件夹,这些文件夹内的多个文件夹,等等...现在,当我在做一些cd和cp操作,我每天做一个备份过程的一部分或即使使用TAB自动更正功能,也必须输入文件或位置的所有文件路径变得相当烦人。
因此,我认为真正有用的是,如果我可以为命令创建别名,而不是为文件路径创建别名。这可能吗?
以下是我希望它如何工作的一些示例:
我希望能够将~/Documents/SectionA/Sub-folder65/SectionF-2别名分配给等于,pandaPictures以便我可以使用它来执行以下类型的操作:
cp pandaPictures/pic1.png ~/Pictures
cd pandaPictures
cd pandaPicture/Specials
Run Code Online (Sandbox Code Playgroud)
如果TAB自动完成功能也适用于包含这些文件路径别名的文件路径,那也会很好。
我还希望能够分配PandaImages/2016/Sector7一个别名,safePandaImages以便我可以使用它来执行以下类型的操作:
cp ~/Documents/Images/safePandaImages/panda.jpg ~/Pictures
cd ~/Pictures/Photos/Images/Wallpaper/safePandaImages
Run Code Online (Sandbox Code Playgroud)在我上面给出的例子中,如果不可能或非常不切实际,第二部分不是绝对必须的(别名不仅在开头,而且在中间和结尾)。尽管如果可能的话,我不介意它看起来不像上面那样(例如,如果您必须[]在别名周围使用s 或其他东西,以便很明显它不仅仅是常规文件路径)。
我正在使用 GNOME 3.18 运行 Ubuntu GNOME 15.10。
坦率地说,这是变量的工作:
pandaPictures=~/Documents/SectionA/Sub-folder65/SectionF-2
cp "$pandaPictures"/pic1.png ~/Pictures
cd "$pandaPictures"
cd "$pandaPictures"/Specials
Run Code Online (Sandbox Code Playgroud)
或者:
safePandaImages=PandaImages/2016/Sector7
cp ~/Documents/Images/"$safePandaImages"/panda.jpg ~/Pictures
cd ~/Pictures/Photos/Images/Wallpaper/"$safePandaImages"
Run Code Online (Sandbox Code Playgroud)
Bash 不够聪明,无法完成变量的内容,但 zsh 可以:
$ foo=/usr
$ cp $foo/ # press Tab
bin/ include/ lib/ lib32/ lib64@ local/ sbin@ share/ src/
Run Code Online (Sandbox Code Playgroud)
使用 bash,您可以先使用它来扩展每个变量、别名、命令替换等,CtrlAltE然后使用制表符补全:
$ foo=/usr
$ cp $foo # press Ctrl-Alt-E
$ cp /usr
Run Code Online (Sandbox Code Playgroud)
综上所述,如果您经常这样做,请编写脚本。制作脚本。将其添加到 crontab。算了吧。
变量可能是最好的解决方案,但你也可以创建符号链接来完成同样的事情,至少对于第一种情况。好处是很容易自动完成。
ln -s ~/Documents/SectionA/Sub-folder65/SectionF-2 ~/pandaPictures
Run Code Online (Sandbox Code Playgroud)
cp ~/pandaPictures/pic1.png ~/Pictures
cd ~/pandaPictures
cd ~/pandaPictures/Specials
Run Code Online (Sandbox Code Playgroud)