Bash

Bash - 遍歷指定文件夾以查找空文件

  • December 14, 2020

我想loop通過在腳本中指定的一組文件夾並列印所有空文件。我使用這個腳本:

array=("folderA" "folderX")    

for file in ./"${array[@]}"/*; do

 if [ -s "${file}" ]; then

   echo "$file"

 fi
done

這不起作用,我只得到數組中指定的第一個文件夾的輸出,如下所示:

./folderX
./folderA/emty_file1
./folderA/emty_file7
./folderA/emty_file12
./folderA/emty_file24

如何使腳本也檢測數組中指定的其他目錄中的空文件?

無需重複,

array=("folderA" "folderX")
find "${array[@]}" -maxdepth 1 -type f -empty

另一種簡單的解決方案:

for i in "folderA" "folderX"
 do find "$i" -type f -empty
done

如果腳本是從其他位置啟動的,請務必包含文件夾名稱的路徑,例如“/usr/local”。

編輯:另外,就像正確指出的那樣,如果您想限制搜尋範圍,請相應地使用 maxdepth :

for i in "folderA" "folderX"
 do find "$i" -maxdepth 1 -type f -empty
done

引用自:https://unix.stackexchange.com/questions/624199