古いファイルのみを含むLinuxディレクトリの削除

古いファイルのみを含むLinuxディレクトリの削除

私たちには多くのディレクトリがあり、各ディレクトリには2つのファイルが含まれています。そのうちの1つは隠しファイルです。変更日が180日より古いファイルのみを含むすべてのディレクトリとその内容を削除しようとしています。たとえば、次のような場合があります。

Dir1   Jan 1 2000
     File1A   Jan 1 2000
     File1B   Jan 1 2000
Dir2   Jan 1 2000
     File2A   Jan 1 2014
     File2B   Jan 1 2014
Dir3   Jan 1 2000
     File3A   Jan 1 2014
     File3B   Jan 1 2000

Dir1とそのコンテンツ(隠しファイルを含む)のみを削除するには、Linuxコマンドが必要です。 Dir2とDir 3は、各ファイルに180日前のファイルが1つ以上含まれているため、変更されていません。

最新のファイルを含むディレクトリを一覧表示しましたが、「その他」ディレクトリをすべて削除する「逆方向」コマンドが見つかりませんでした。

ベストアンサー1

GNUツールの使用:

for d in Dir*; do
  find "$d" -mindepth 1 -mtime -180 -print -quit | grep -q . ||
    echo rm -rf "$d"
done

満足のいくものを削除してくださいecho-qディレクトリが削除されなかった理由を確認するには、削除してください。

おすすめ記事