将具有一个域名的多个目录重命名为另一个域名?

时间:2012-01-31 10:43:26

标签: linux bash shell

我的名字中有很多带有一些短语(域名)的目录。需要将该短语更改为另一个(另一个域名)。怎么这么简单?示例如下:

在:

$ 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
...

2 个答案:

答案 0 :(得分:16)

$ 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

答案 1 :(得分:0)

您还可以使用perl附带的rename

$ rename 's/somewhere/elsewhere/' *