この質問にはすでに回答があります :最も古いファイルを削除する
(8つの回答)
5年前に閉鎖されました。
Linux
(8つの回答)
5年前に閉鎖されました。
別のディレクトリからすべてのファイルを削除し、最新のファイルのみを20ファイル保持したい。
これはこれを行うための正しいコマンドですか?
ls -t1 /mnt/dwh/ftp/dwh_ftp_cbs/ARLOGS/ | tail -n +22 | xargs rm -f
承認された回答:
zsh
を使用 およびglob-qualifiers:
print -rl -- *(D.Om[1,-21])
最後の(最近変更された)20を除くすべての通常のファイルが一覧表示されます。
D
非表示のファイルを選択します、.
通常のファイルのみを選択します。Om
mtimeによる逆ソートを意味します (最初に最も古い)および[1,-21]
最初から最後から21番目までを選択します。
結果に満足できる場合は、print -rl
を置き換えます。 rm
を使用 :
rm -- *(D.Om[1,-21])
膨大な数のファイルがある場合は、zargs
を使用する必要があるかもしれません。 引数リストが長すぎるのを避けるため :
autoload zargs
zargs ./*(D.Om[1,-21]) -- rm