鉱山を整理するために簡単なスクリプトを設定しようとしていますworking folder
。そのworking folder
構造は次のとおりです。
Project 1
Project 1 [edited]
Project 2
Project 2 [edited]
Project 3
Project 3 [edited]
...
すべてのプロジェクトフォルダにはファイルのみが含まれています。目標は、working folder
そのフォルダ内のすべてのフォルダを削除することですいいえ[edited]
名目上あります。
答え1
GNU findを使用すると、次のようになります。
find . -maxdepth 1 -mindepth 1 ! -name "*edit*"
名前に「edit」が含まれていない現在のディレクトリのファイルと一致し、名前を印刷する必要があります。もちろん、-type d -iname "*project*"
名前に "project"を含むディレクトリのみを一致させるように追加することもできます。出力が正しい場合は、追加して-delete
削除find
できます。
実際に Bash を使用すると、shopt -s extglob
次のことも使用できます。
echo rm -r !(*edit*)/
末尾のスラッシュはディレクトリにのみ一致させ、echo
コマンドを実行せずに印刷のみします。