我正在尋找一個好的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