特定のパスから30日以上経過したすべてのファイルとディレクトリを削除する方法を見つけたいと思います。ただし、そのパスには削除または変更したくない特定のディレクトリがあります。私は-pruneを読みましたが、うまく動作しないようです。これまでに試したコマンドは次のとおりです。find "<path to directory" -prune -o -name "<name of excluded directory" -type f -mtime +30 -exec rm {} +
ベストアンサー1
コマンドロジックがfind
混乱しているようです。名前付きディレクトリを除いてファイル名を印刷するには、excludeme
次のように作成できます。
find /path/to/top/directory -name excludeme -prune -o -type f -print
これは-o
論理であるため、OR
有効な条件はコマンド-prune
と-o
同じ側になければなりません-prune
。
これを念頭に置いて、私たちは次のように結論を下します。
find "<path to directory" \
-name "<name of excluded directory> -prune -o \
-type f -mtime +30 -exec rm {} +