我正在寻找一个好的shell来移动或重命名目录中的文件,其中目标和目标父目录是相同的,而且不同于当前工作目录。举例来说,我不希望事情写:如何使用Linux(Bash)移动目录中的文件
$ mv /usr/share/nginx/html/app.xml /usr/share/nginx/html/index.html
我怎么能这样做同样的事情,而无需键入“在/ usr /共享/ nginx的/ HTML /”两次,或者使用多个命令(切换目录, pushd等)?
我正在寻找一个好的shell来移动或重命名目录中的文件,其中目标和目标父目录是相同的,而且不同于当前工作目录。举例来说,我不希望事情写:如何使用Linux(Bash)移动目录中的文件
$ mv /usr/share/nginx/html/app.xml /usr/share/nginx/html/index.html
我怎么能这样做同样的事情,而无需键入“在/ usr /共享/ nginx的/ HTML /”两次,或者使用多个命令(切换目录, pushd等)?
您可以使用braces expansion:
$ mv /usr/share/nginx/html/{app.xml,index.html}
太棒了!这是特定的bash还是它也可以工作? – ErlVolton 2014-10-20 14:35:56
@ErlVolton [它是特定于bash的](http://unix.stackexchange.com/q/92819/67817)。 – 2014-10-20 14:41:27
参数扩展的一部分是[POSIX](http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02),但是这个语法似乎不是POSIX – 2014-10-20 14:42:20
您可以使用一个子shell:
(cd /usr/share/nginx/html; mv app.xml index.html)
我最喜欢的部分是,我不小心被搬到这里来了错误的文件(.XML为.html,跆拳道? )但没有人关心,他们只是回答得当:) – ErlVolton 2014-10-20 18:22:55