他のディレクトリのすべてのファイルを削除し、最新の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