2012-08-03 58 views
1

我在/ home/servers2中有一堆目录(如几千),并且在server2的每个目录中都有一个名为plugins Ex的目录。/home/servers2/MyServer/pluginsBash脚本以递归方式将文件添加到多个目录

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

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分钟后,我控制了它。但是我没有从循环内部回应,有什么建议?

+0

没有输出意味着甚至没有“将插件复制到所有服务器插件目录的脚本”和“完成的脚本...” – 2012-08-03 16:58:27

+0

我的错误,它确实让脚本复制一个插件到所有插件目录 – 2012-08-03 17:00:03

+0

也许路径扩展不匹配 – 2012-08-03 17:01:48

回答

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 \; 
1

此命令将删除文件:

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

该命令将新的文件复制到的地方:

find ./servers2 -name plugins |xargs -n1 cp ./servers/template/plugins/AutoStop1.3.001.jar 
相关问题