Debian コンピュータで自分のムービーフォルダを再構築しようとすると、最終的に次のような構造になりました。
├── Universal.Love(2017)(1080p)
│ └── Universal.Love(2017)(1080p)
│ └── Universal.Love(2017)(1080p)
│ └── Universal.Love(2017)(1080p).mkv
│ └── Universal.Love(2017)(1080p).mkv.mkv
├── Unknown.User.2014.German.DTS.DL.1080p.BluRay.x264-EXQUiSiTE
│ └── exq-unknownuser-1080p
│ └── exq-unknownuser-1080p
│ └── exq-unknownuser-1080p
│ └── exq-unknownuser-1080p.mkv
├── Unsane.2018.1080p.BluRay.x264-DRONES
│ └── Unsane.2018.1080p.BluRay.x264-DRONES
│ └── Unsane.2018.1080p.BluRay.x264-DRONES
│ └── Unsane.2018.1080p.BluRay.x264-DRONES
│ └── Unsane.2018.1080p.BluRay.x264-DRONES.mkv
├── Untitled (2017)
│ └── Untitled.2017.WEBDL-1080p
│ └── Untitled.2017.WEBDL-1080p
│ └── Untitled.2017.WEBDL-1080p
│ └── Untitled.2017.WEBDL-1080p.mkv
1つのサブフォルダにのみ.mkvを持つことはできますか?
ベストアンサー1
shopt -s globstar nullglob
for dir in ./*/; do
for file in "$dir"/**/*.mkv; do
[ ! -f "$file" ] && continue
mv -i "$file" "$dir"
done
done
上記の二重ループで問題を解決することができます。
これは、現在のディレクトリ(これらすべての最上位ディレクトリを保持するディレクトリと見なされます)のディレクトリを繰り返し実行します。各ディレクトリに対して、.mkv
そのディレクトリの下のすべてのファイルがサブディレクトリに移動されます。これは、サブディレクトリが再帰的に一致する**
globsを介して行われます。bash
シェルの有効化globstar
オプションが機能し**
、nullglob
与えられたパターンに一致するものがない場合、ループはまったく実行されません。
その後、次のコマンドを使用して空のディレクトリを削除できます。
find . -type d -empty -delete