1

我在 /home/servers2 中有一堆目录(比如几千个),并且在 server2 的每个目录中都有一个名为 plugins Ex 的目录。/home/servers2/MyServer/plugins

现在在每个文件中都有一个名为 AutoStopFinal.jar 的文件,我需要将其删除,然后将 AutoStop1.3.001 从 /home/servers/template/plugins 复制到插件目录。我想非破坏性地测试它,所以我尝试了这个:

echo " Script to copy a plugin to all server plugin directories"

for i in /home/servers2/*/plugins; do
    echo rm -f $i/AutoStopFinal.jar
    echo cp -f /home/servers/template/plugins/AutoStop1.3.001.jar "$i"
done

echo " completed script ..."

但只有脚本将插件复制到所有服务器插件目录。大约 5 分钟后,我控制了 C'd。但是我没有从循环内部得到回声,有什么建议吗?

4

2 回答 2

3

您可能可以像这样使用 find 为您执行此操作:

cd /home/servers2
find . -type d -name plugins -exec cp -f /home/servers/template/plugins/AutoStop1.3.001.jar {} \; -exec rm -f {}/AutoStopFinal.jar \;
于 2012-08-03T17:14:32.123 回答
1

此命令将删除文件:

find ./servers2 -name AutoStopFinal.jar |xargs -n1 rm

此命令会将新文件复制到位:

find ./servers2 -name plugins |xargs -n1 cp ./servers/template/plugins/AutoStop1.3.001.jar
于 2012-08-03T17:31:33.980 回答