2014-10-20 105 views
2

我正在寻找一个好的shell来移动或重命名目录中的文件,其中目标和目标父目录是相同的,而且不同于当前工作目录。举例来说,我不希望事情写:如何使用Linux(Bash)移动目录中的文件

$ mv /usr/share/nginx/html/app.xml /usr/share/nginx/html/index.html 

我怎么能这样做同样的事情,而无需键入“在/ usr /共享/ nginx的/ HTML /”两次,或者使用多个命令(切换目录, pushd等)?

+0

我最喜欢的部分是,我不小心被搬到这里来了错误的文件(.XML为.html,跆拳道? )但没有人关心,他们只是回答得当:) – ErlVolton 2014-10-20 18:22:55

回答

6

您可以使用braces expansion

$ mv /usr/share/nginx/html/{app.xml,index.html} 
+2

太棒了!这是特定的bash还是它也可以工作? – ErlVolton 2014-10-20 14:35:56

+2

@ErlVolton [它是特定于bash的](http://unix.stackexchange.com/q/92819/67817)。 – 2014-10-20 14:41:27

+0

参数扩展的一部分是[POSIX](http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02),但是这个语法似乎不是POSIX – 2014-10-20 14:42:20

2

您可以使用一个子shell:

(cd /usr/share/nginx/html; mv app.xml index.html) 
相关问题