私がいるディレクトリのファイルをどのように削除できますか?

私がいるディレクトリのファイルをどのように削除できますか?

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日以上前です。

関連情報