検索コマンド - 引数として渡されたデフォルトディレクトリを一覧表示せずに、ディレクトリの下にあるサブディレクトリとファイルのみを一覧表示する方法。
例:
find /abc/def/ghi -mtime +10
上記のコマンド出力の結果には、デフォルトディレクトリがその中にあるサブディレクトリとファイルとともに一覧表示されます。
/abc/def/ghi
/abc/def/ghi/fff
/abc/def/ghi/abc.txt
出力が以下のようになります。
/abc/def/ghi/fff
/abc/def/ghi/abc.txt
この問題の原因は、find
コマンド出力がディレクトリとファイルを繰り返し削除するために使用されるためです。したがって、デフォルトのディレクトリが/abc/def/ghi
10日間使用されない場合、そのディレクトリも一覧表示され、最終的に削除されます。
find /abc/def/ghi -mtime +10 -exec rm -rf {} \;
ベストアンサー1
しきい値より古いファイルを見つけて、空のディレクトリを削除します。
この$base
変数は4回(1文あたり2回)使用されます。これにより、私たちは自己-path "$base/*"
削除を防ぐことができます。つまり、最上位または 。$base
*
.
..
base=/abc/def
find "$base/" -path "$base/*" -type f -mtime +10 -exec rm -f {} +
find "$base/" -depth -path "$base/*" -type d -exec rmdir {} + 2>/dev/null