另一种方法是创建自己的专用于此目的的命令。这可以通过如下函数实现:
$ function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
其中:(1) mv-special
是函数名称;(2)变量$1
和$2
是函数中的参数,将由命令mv
和使用cd
;(3) $(echo $2-)
在var的字符串末尾添加一个野猫字符$2
,并修复dirname
该变量$2
仅包含路径的行为;(4) $(dirname $(echo $2-))
将仅过滤的路径$2
。
根据此答案,该函数可能类似于:
$ function mv-special { mv $1 $2; cd ${2%/*}; }
其中:${2%/*}
仅过滤的路径$2
。
要用作命令,必须导出此函数:
$ export -f mv-special
用法:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/file.pdf
要么:
$ mv-special file.pdf ../../../Dropbox/sharedfolder/subdirectory/
请注意-对于两个变体,第二个参数($2
)必须以文件名或斜杠(/
)结尾。
为了使我们的新命令永久可用,必须将函数的定义和export命令附加到~/.bashrc
:
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd $(dirname $(echo $2-)); }
export -f mv-special
要么:
# My custom 'mv-special' command:
function mv-special { mv $1 $2; cd ${2%/*}; }
export -f mv-special
自定义命令可以制成,并通过其被放置在可执行的脚本文件~/bin
或者/usr/sbin
:我怎样才能创建一个定制终端的命令(运行脚本)?但老实说,在这种情况下,我的行为很麻烦cd
。