フォルダの最後(最近)20個のファイルを除いてすべて削除[重複]

フォルダの最後(最近)20個のファイルを除いてすべて削除[重複]

他のディレクトリのすべてのファイルを削除し、最新の20個のファイルのみを維持したいと思います。これを行う正しいコマンドですか?

ls -t1 /mnt/dwh/ftp/dwh_ftp_cbs/ARLOGS/ | tail -n +22 | xargs rm -f

ベストアンサー1

そしてzshグローバル予選:

print -rl -- *(D.Om[1,-21])

最後の(最も最近修正された)20個のファイルを除くすべての一般ファイルが一覧表示されます。
D隠しファイルの選択、.通常のファイルのみの選択、Om逆の並べ替えを意味します。時間(古いものから)そして[1,-21]最後から最初から21日まで選択してください。
結果が満足な場合は、次のようprint -rlに変更してくださいrm

rm -- *(D.Om[1,-21])

ファイルの数が多い場合は、使用をzargs避ける必要があるかもしれません。パラメータリストが長すぎます。:

autoload zargs
zargs ./*(D.Om[1,-21]) -- rm

おすすめ記事