定义自定义位置别名

定义自定义位置别名

我试图找到一种访问目录的方法,而无需每次都指定整个路径。例如,我下载了很多视频,并且设置了一个文件夹来存储所有这些视频,因为我将在许多不同的场合多次访问同一文件夹并从该文件夹移动/复制内容,所以我寻找一种定义别名(或类似的东西)的方法,让我可以在终端中快速引用该文件夹,例如

mv video.mp4 VIDFOLDER

在哪里

VIDFOLDER=/path/to/my/folder

截至目前,我只尝试设置一个环境变量,但它似乎不起作用。我尝试寻找其他方法,但没有找到太多。有任何想法吗?

答案1

vidmv () { command mv "$@" /path/to/my/folder; }

mv将像平常一样处理任何丢失或不可读的文件错误。这还有一个优点是支持所有现有mv选项(除了-T不起作用的选项)。例如,-v用于详细、-n无破坏、-u仅更新等。

运行为,例如:

vidmv -v -u *.mp4

注意:command函数中的 会mv按 PATH 中找到的那样运行,忽略任何名为 的别名或函数mv。例如,一种常见的做法是--除非您将其指定为选项,否则alias mv='mv -i'此函数会忽略它并运行。mv-ividmv

或者

vidmv () { command mv "$@" "$VIDFOLDER"; } 

该版本允许更改目的地而无需重新定义功能。当然,VIDFOLDER必须在当前 shell 或.bash_profile, .bashrc/etc中预先定义

答案2

你就快到了:

而不是mv video.mp4 VIDFOLDER你需要mv video.mp4 "$VIDFOLDER"。需要$使用该变量。在变量赋值期间不得使用它。

export VIDFOLDER=/path/to/my/folder应该进入你的.bashrc- 文件。

作为替代方案,您可以为此设置函数(在.bashrc或中.bash_aliases),请参阅cas提供的功能

相关内容