0

该脚本正在查找和替换 PHP 文件中的 URL,当我在只有 1 个文件的测试目录中运行它时,它的运行速度非常快。但是,我需要从我的服务器上的主目录运行它,这需要永远(到目前为止至少 5 分钟。)如果我可以将搜索范围缩小到不是所有 PHP 文件,而只限于 "主题”文件夹。整个服务器中有多个“主题”文件夹。是否可以将搜索范围缩小到仅名为“主题”的文件夹中的 php 文件?

find . -type f -iname "*.php" -exec sed -i.bak 's/http:\/\/www.changed.com/http:\/\/www.stillchanged.com/g' {} \;

主题文件夹的示例路径

/home/site1/public_html/wp-content/themes/

/home/site2/public_html/wp-content/themes/

/home/site3/public_html/wp-content/themes/

4

2 回答 2

1
find /tmp/* -type d -iname test\* -exec find {} -type f -iname test\* \;

find你可以像上面那样做一个嵌套。

示例结果:

sgeorge-mn:~ sgeorge$ find /tmp/* -type d -iname test\*
/tmp/stack/test_e
/tmp/stack/test_f
/tmp/stack/test_g
/tmp/stack/test_h
/tmp/stack/test_i
/tmp/stack/test_j
/tmp/stack/test_k
/tmp/test_a
/tmp/test_b
/tmp/test_c
/tmp/test_d
sgeorge-mn:~ sgeorge$ find /tmp/* -type d -iname test\* -exec find {} -type f -iname test\* \;
/tmp/stack/test_e/testa
/tmp/stack/test_e/testb
/tmp/stack/test_e/testc
/tmp/stack/test_e/testd
/tmp/stack/test_f/testa
/tmp/stack/test_f/testb
/tmp/stack/test_f/testc
/tmp/stack/test_f/testd
/tmp/stack/test_g/testa
/tmp/stack/test_g/testb
/tmp/stack/test_g/testc
/tmp/stack/test_g/testd
/tmp/stack/test_h/testa
/tmp/stack/test_h/testb
/tmp/stack/test_h/testc
/tmp/stack/test_h/testd
/tmp/stack/test_i/testa
/tmp/stack/test_i/testb
/tmp/stack/test_i/testc
/tmp/stack/test_i/testd
/tmp/stack/test_j/testa
/tmp/stack/test_j/testb
/tmp/stack/test_j/testc
/tmp/stack/test_j/testd
/tmp/stack/test_k/testa
/tmp/stack/test_k/testb
/tmp/stack/test_k/testc
/tmp/stack/test_k/testd
/tmp/test_a/testa
/tmp/test_a/testb
/tmp/test_a/testc
/tmp/test_a/testd
/tmp/test_b/testa
/tmp/test_b/testb
/tmp/test_b/testc
/tmp/test_b/testd
/tmp/test_c/testa
/tmp/test_c/testb
/tmp/test_c/testc
/tmp/test_c/testd
/tmp/test_d/testa
/tmp/test_d/testb
/tmp/test_d/testc
/tmp/test_d/testd

编辑: 在你的情况下,你甚至不想要一个嵌套的find

使用find如下:

find /home/*/public_html/wp-content/themes/ -type f -iname \*.php
于 2013-01-16T02:36:09.510 回答
0

添加-wholename "*themes*"到您的条件列表中。这将仅匹配“主题”子目录下的文件(递归)。

于 2013-01-16T02:38:04.840 回答