我有一個自定義應用程序,可以爲每個訂單創建日誌文件。日誌文件具有隨機名稱。我只想保留10個最新的文件。Bash:刪除除最後10個日誌文件以外的所有文件
到目前爲止,我來到這裏:
ls -lrth /var/log/myapp/ | awk {'print $9'} | tail -n10
這個命令讓我的10個最新的文件列表。現在,我想刪除除這些文件以外的所有其他內容。有沒有辦法獲得除這10個最新文件以外的所有文件的列表,或者如何刪除除這10個文件以外的所有文件?
乾杯, 彼得
我有一個自定義應用程序,可以爲每個訂單創建日誌文件。日誌文件具有隨機名稱。我只想保留10個最新的文件。Bash:刪除除最後10個日誌文件以外的所有文件
到目前爲止,我來到這裏:
ls -lrth /var/log/myapp/ | awk {'print $9'} | tail -n10
這個命令讓我的10個最新的文件列表。現在,我想刪除除這些文件以外的所有其他內容。有沒有辦法獲得除這10個最新文件以外的所有文件的列表,或者如何刪除除這10個文件以外的所有文件?
乾杯, 彼得
for i in $(ls -lrth /var/log/myapp/ | awk {'print $9'} | head -n -10) ; do echo $i ; done
檢查輸出,如果滿足更換回聲RM。
這一發現會給你所有,但最後10名最近修改的文件:
find . -exec stat --format="%X" + | sort -n | tail -n+10
使用ls
類似的列表:
ls -lt|tail -n+10
[不解析LS(HTTP:// mywiki。 wooledge.org/ParsingLs) – BroSlow
@BroSlow - 同意並標記爲有用! – blue