サブフォルダの内容を親フォルダに移動し、現在空のサブフォルダを削除しようとしています。それぞれが一意のクライアント名を持つ複数の親フォルダでこれを実行したいと思います。ここで見ることができるフォルダ階層のスクリーンショットを撮りました >>>https://i.stack.imgur.com/Ve4Cj.png
各CLIENTフォルダには、1つのフォルダの上に移動する必要があるコンテンツを含む「#msgs」というサブフォルダがあります。私は次のような厄介な3段階の方法を使用しました。
cd /Users/SystemFive/Desktop/ROOT/PARENT\ DIRECTORY/CLIENT\ 1
mv \#msgs/* .
それから
find . -type d -name "#msgs" -exec rm -fvr "{}" \;
100を超えるクライアントフォルダに対してこれを行う必要があるため、これは私のプロジェクトにとって非常に面倒な作業です。私は、各クライアントフォルダを介して完全な親ディレクトリを実行できる一種のif / thenステートメントを作成する方向を探しています。助けてくれてありがとう。ありがとうございます!
答え1
find . -iname '#msgs' | perl -pe 's/(.*)(#msgs)/mv "$1$2\/*" "$1";\nrm -r "$1$2";/g' | bash
それを省略し| bash
、それが何をしているかを見てください