ディレクトリのすべての内容と一部の除外内容を削除しようとしています。私は現在これを使用しています:
find . -type f | grep -vZf ../../exclude.file | xargs rm -rf
これには以下がexclude.file
含まれます。
*log*
world*
crash-reports
banned-ips*
world
、フォルダ、またはその内容を削除したくありません(*はで作成されたバックアップを上書きしますlog
)。crash-reports
world.zip
上記のコマンドはこれを行いますが、空でないディレクトリは削除しません。たとえば、Config
ディレクトリは保存されていますが、削除する必要があります。
私も次のことを試しました。
find -maxdepth 0 -not -name '*log*' -not -name 'crash-reports' -not -name 'world*' | xargs rm -rf
しかし、私はまだ同じ結果を得ます。
これを行う方法はありますか?
ベストアンサー1
-type f
ディレクトリは検索できず、ファイルのみを検索できます。-maxdepth 0
検索しているディレクトリのみが検索されます(.
)。実際に渡したいファイルを見つける必要がありますrm
。
標準的なアプローチは、ディレクトリを除外することです。そしてそのすべて次のようになります(テストされていません!)。
find . -mindepth 1 \( -name '*log*' -o -name 'crash-reports' -o -name 'world*' \) -prune -o -print