2014-03-06 82 views
1

我想創建一個腳本,它將刪除指定目錄列表中超過7天的任何文件,但想知道最好的方法是什麼...Bash-在多個目錄上執行相同的命令

我想執行指定的所有目錄下面的命令:

find DIRECTORY_PATH -type f -mtime +7 -exec rm {} \; 

也許數組拿着目錄列表,並通過循環執行對find命令在陣列中的每個元素?

任何幫助/意見,將不勝感激。

+1

你在哪兒的路徑列表?因爲如果它在一個文件中,你可以遍歷它的行並執行'find'命令。 – fedorqui

+1

爲什麼不找'path1 path2 pathN '? – RedX

+0

目前在腳本中,因爲它更容易維護...但是放置在單獨的文件中會更容易嗎? – Shaw

回答

1

可以將所有目錄直接存儲在一個文件,說dirs.txt和遍歷它:

while read dir 
do 
    find "$dir" -type f -mtime +7 -exec rm {} \; 
done < dirs.txt 
+0

添加到快速問題...一旦我完成閱讀文件後,如何關閉文件(dirs.txt)? – Shaw

+0

您在執行'while read ... do ... done fedorqui