如何使資料夾中的檔案數量少於限制

如何使資料夾中的檔案數量少於限制

我正在嘗試創建一個 bash 腳本來將文件數量限制為 50000 個。我已經編寫了程式碼,但它沒有按預期工作。它刪除了所有文件,而不僅僅是舊文件。我打算刪除最後一個元素,直到檔案數量低於限制。有沒有更簡單的方法來完成這個過程?

LIMIT=50000

NUMBER=$(find /mnt/capture/PPO/ -maxdepth 1 -name "*.pcap" wc -l)

if [[ $NUMBER -gt $LIMIT ]]  #if number greater than limit
then

FILES=$(find /mnt/capture/PPO/ -maxdepth 1 -name "*.pcap")


for f in "${FILES[@]}"

 do

rm $FILES[$NUMBER-$f]
done
 #delete the originals
fi

答案1

我認為你的 FILES 變數是錯的。它會找到所有文件,而不僅僅是最舊的文件。你可以使用這樣的東西:

find /mnt/capture/PPO/ -maxdepth 1 -type f -name "*.pcap" -print0 | xargs -0 ls -lt | tail -5 | awk '{print $9}'

這會找到目錄中最舊的 5 個檔案。然後您可以根據需要更改該數字。

相關內容