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