ディレクトリ内の 30 日以上経過したファイルを削除したいのですが、現在いるディレクトリの下のディレクトリにあるファイルは削除したくありません。
答え1
削除する前にファイルを一覧表示するには:
find . -maxdepth 1 -mtime +30 -type f -ls
ファイルを削除するには:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
と
.
現在のディレクトリを指定する-maxdepth 1
最大1レベルのディレクトリまで降りる-mtime +30
最終更新日が 30 日を超えるファイルのみ-type f
通常のファイルのみ
答え2
zshシェルには特別なワイルドカード拡張機能それは役に立つでしょう。
現在のディレクトリ内の 30 日より古いファイルを一覧表示します。
ls -d -- *(.m+30)
現在のディレクトリ内の 30 日より古いファイルを削除します。
rm -- *(.m+30)
zsh 構文の は*(.m+30)
ワイルドカードであり、次の意味を持ちます。
*
-- 任意のファイル名( ... )
-- 修飾語付き....
-- 通常のファイル(ディレクトリなどではない)m+30
-- 変更時刻が 30 日以上前である