2012-08-02 32 views
-1

所以我需要將文件/home/servers/template/craftbukkit.jar複製到/ home/servers,Ex中的每個文件夾中。/home/servers/server1,/ home/servers/server2等。遞歸複製文件到多個目錄中,如果Bash中不存在目錄

但是我只想做/ home/servers/whateverserveritiscurrentlyon/mods不存在。這是我想出了,並想知道它是否會工作:

echo " Script to copy a file to all server directories, only if mods does not exist in that directory" 

for i in /home/servers/*/; do 
    if [ ! -d "$i/mods" ]; then 
    cp -f /home/servers/template/craftbukkit.jar "$i" 
    fi 
done 

echo " completed script ..." 

回答

2

看起來像它應該工作。要進行非破壞性測試,請將cp -f ...行更改爲echo cp -f ...並查看輸出結果。

它也可以有所縮短,但它不會影響工作效率了:

for i in /home/servers/*/ 
do 
    [[ -d "${i}/mods" ]] || cp -f /home/servers/template/craftbukkit.jar "${i}/." 
done 
相關問題