簡體   English   中英

刪除除每個前綴的最近n個文件以外的所有文件(基於文件日期)?

[英]Delete all except the most recent n files of each prefix (based on file date)?

我正在腳本中運行此命令,它將刪除每個文件中除5個文件以外的所有文件,但不會根據日期保留最后5個文件:

ls -rv | awk -F_ '++n[$1]>5' | xargs rm

**下划線是前綴(主機名)和文件名之間的分隔符。

我也嘗試過其他一些東西,但似乎並不能解決問題。

我正在運行此命令以刪除文件夾中除最后n個文件以外的所有文件,它可以正常運行:

rm -f $(ls -1t -I "*.sh" | tail -n +21)

這適用於所有內容。

我還有另一個文件夾,其中充滿了來自所有具有主機名前綴的各種設備的備份。 格式為:hostname_config.backup-timestamp。

@rici解決了它。 轉儲-rv標志並使用-t創建了我想要的行為。

ls -t | awk -F_ '++n[$1]>5' | xargs rm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM