
私のフォルダ構造は次のとおりです。
Photos
|
|---> 2015-08-23
|
|---> IMG_0019.JPG // keep
IMG_0019.JPG.json // toss
IMG_0020.JPG // keep
IMG_0020.JPG.json // toss
IMG_0021.JPG // keep
IMG_0021.JPG.json // toss
metadata.json // toss
2015-08-24
|
|---> IMG_0242.MP4 // keep
IMG_0242.MP4.json // toss
metadata.json // toss
2015-08-25
|
|---> IMG_0243.MOV // keep
IMG_0243.MOV.json // toss
IMG_0243(1).MOV // keep
IMG_0243(1).MOV.json // toss
IMG_0244.PNG // keep
IMG_0019.PNG.json // toss
metadata.json // toss
これを延々と続ける。私の目標は、次のようなフォルダ構造にすることです。
Photos
|
|--> IMG_0019.JPG
IMG_0020.JPG
IMG_0021.JPG
IMG_0242.MP4
IMG_0243.MOV
IMG_0243(1).MOV
IMG_0244.PNG
...
私はこれの修正版を作ろうとしていました記事 ここで、各ディレクトリをループし、正規表現を実行して価値のあるファイルのみを取得します。次のようになります。
// get a list of all directories
// loop through directories
// get all contents in directory
// loop through all contents in directory
// determine if file is of value (ie. MP4, PNG, MOV, JPG, etc.)
// move selected file out to parent directory
// remove directory
ご協力いただければ幸いです
答え1
予想される結果の構造から、 で終わらないファイルだけを保持したいとします.json
。これは次のように行います。
cd Photos
find . -type f ! -name *.json -exec mv {} . \; && rm -rf 2015*
Photos ディレクトリ内から、 で終わらないファイルを探し.json
、それらを または現在のディレクトリに移動し.
、不要なサブディレクトリとファイルを削除します。 また、 を使用して、各ディレクトリを削除する前にプロンプトを表示したり、気が変わった場合に残りのファイルとそのディレクトリを削除する前にコマンドを個別にrm -ri 2015*
実行したりすることもできます。find
rm