定期的に実行するいくつかのファイル管理タスクを自動化しようとしています。 「./xfer」フォルダとその内容を除いて、ディレクトリ内のすべてのファイルとフォルダを削除したいと思います。
私はこれを達成するためにfindコマンドを使用しようとしましたが、結果は少し不満です。もっと良い方法がありますか?次のコマンドを実行してテスト環境を設定しました。
mkdir test0{1..5}; find . -type d -exec touch '{}'/test-0{1..5} \;
これが私が作業してきたコマンドです。ところで、私はこれについて少し初めてであり、主に学習練習でこれをしています。また、これはすぐに終了する小さなスクリプトの最後のコマンドになります。
find /some/directory/path/* -type f ! -path "/some/directory/path/xfer/*" -exec rm -fv {} \;; find /some/directory/path/* -type d ! -path "/some/directory/path/xfer" -exec rm -rfv {} \;
ベストアンサー1
あなたはそれを使用することができます-prune
:
find . -path ./xfer -prune -o -exec rm -fv {} \;
ファイルを一覧表示すると、パスが一致すると./xfer
ファイルが削除され、それ以外の場合はrm
呼び出されます。