如何为文件路径创建别名?

如何为文件路径创建别名?

我的机器上有许多文件夹,其中许多文件夹中又包含更多文件夹,这些文件夹中又包含更多文件夹,等等...现在,当我每天执行某些cd操作(作为备份过程的一部分)时,即使使用自动更正功能cp,输入文件或位置的所有文件路径也会变得相当烦人。TAB

因此,我认为真正有用的是,如果我可以创建一个别名,例如命令的别名,而不是文件路径的别名。这可能吗?

以下是我希望它如何工作的一些示例:

  • 我希望能够分配~/Documents/SectionA/Sub-folder65/SectionF-2给等于一个别名,以便pandaPictures我可以使用它来做以下事情:

    cp pandaPictures/pic1.png ~/Pictures
    cd pandaPictures
    cd pandaPicture/Specials
    

    TAB当文件路径包含这些文件路径别名时,如果自动完成功能能够与文件路径一起工作,那就太好了。

  • 我还希望能够分配PandaImages/2016/Sector7一个别名,以便safePandaImages我可以使用它来做以下事情:

    cp ~/Documents/Images/safePandaImages/panda.jpg ~/Pictures
    cd ~/Pictures/Photos/Images/Wallpaper/safePandaImages
    

在我上面给出的例子中,如果无法或非常不切实际,第二部分就不是绝对必要的(别名不仅在开头,而且在中间和结尾)。但如果可以,我不介意它看起来不像上面那样(例如,如果你必须在[]别名周围加上 s 或其他东西,以便清楚地表明它不仅仅是一个常规文件路径)。

我正在运行带有 GNOME 3.18 的 Ubuntu GNOME 15.10。

答案1

坦白地说,这是变量的工作:

pandaPictures=~/Documents/SectionA/Sub-folder65/SectionF-2
cp "$pandaPictures"/pic1.png ~/Pictures
cd "$pandaPictures"
cd "$pandaPictures"/Specials

或者:

safePandaImages=PandaImages/2016/Sector7
cp ~/Documents/Images/"$safePandaImages"/panda.jpg ~/Pictures
cd ~/Pictures/Photos/Images/Wallpaper/"$safePandaImages"

Bash 还不够智能,无法完成变量的内容,但 zsh 可以:

$ foo=/usr   
$ cp $foo/  # press Tab
bin/      include/  lib/      lib32/    lib64@    local/    sbin@     share/    src/

使用 bash,您可以首先让它扩展每个变量、别名、命令替换等,CtrlAltE然后使用制表符补全:

$ foo=/usr
$ cp $foo # press Ctrl-Alt-E
$ cp /usr

尽管如此,如果你经常这样做,编写脚本。编写一个脚本。将其添加到 crontab。忘掉它。

答案2

变量可能是最好的解决方案,但您也可以创建符号链接来实现相同的目的,至少对于第一种情况而言。这样做的好处是可以轻松实现自动完成。

ln -s ~/Documents/SectionA/Sub-folder65/SectionF-2 ~/pandaPictures

cp ~/pandaPictures/pic1.png ~/Pictures
cd ~/pandaPictures 
cd ~/pandaPictures/Specials

相关内容