2012-01-31 56 views
4

我有許多目錄中有一些短語(域名)的名字。需要將該短語更改爲另一個(另一個域名)。如何做到這一點?下面的示例:將帶有一個域名的多個目錄重命名爲另一個域名?

前:

$ ls /var/www 
drwxr-x--- 12 apache apache 4096 Dec 16 10:28 somewhere.com 
drwxr-xr-x 3 apache apache 4096 Jan 28 2011 maven.somewhere.com 
drwxr-x--- 6 apache apache 4096 Feb 24 2010 mini.somewhere.com 
drwxr-x--- 3 apache apache 4096 Jul 16 2010 ml.somewhere.com 
... 

如果輸出看起來確定後

$ ls /var/www 
drwxr-x--- 12 apache apache 4096 Dec 16 10:28 elsewhere.com 
drwxr-xr-x 3 apache apache 4096 Jan 28 2011 maven.elsewhere.com 
drwxr-x--- 6 apache apache 4096 Feb 24 2010 mini.elsewhere.com 
drwxr-x--- 3 apache apache 4096 Jul 16 2010 ml.elsewhere.com 
... 
+0

重複[文件夾中的殼/擊快捷方式文件重命名散裝(Linux)的](的http://stackoverflow.com/questions/8416990/shell-bash-shortcut-for-bulk-renaming- of-files-in-a-folderlinux) – Sorin 2012-01-31 20:02:10

回答

15
$ cd /var/www 
$ for i in *; do echo mv $i ${i/somewhere/elsewhere}; done 

$ for i in *; do echo mv $i ${i/somewhere/elsewhere}; done |sh 
+0

非常感謝!很棒! – marioosh 2012-01-31 10:54:16

+0

你應該引用你的變量擴展,以防他的名字中有空格 – SiegeX 2012-01-31 14:29:10

+0

我沒有弄到管道sh,移除回聲不是更簡單嗎? – Sorin 2012-01-31 20:03:07

0

您還可以使用rename自帶的perl的。

$ rename 's/somewhere/elsewhere/' *