ファイルが含まれている場合にのみディレクトリを1レベル上に移動する方法。いくつかのヒントが役に立ちます。ありがとうございます!
一歩上に移動する例:
├── AAA
│ └── AAA1
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
したがって、最終結果は次のようになります。
├── AAA1
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
1つのレベルに上がるもう1つの例は次のとおりです。
├── AAA
│ └── BBB
│ └── DDD
│ └── 001.jpg
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
したがって、最終結果は次のようになります。
├── BBB
│ └── DDD
│ └── 001.jpg
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
ファイル(およびサブディレクトリ)がすでに1つ下のレベルにあるため、無視する例:
├── BBB
│ ├── CCC
│ ├── 001.jpg
│ ├── 002.jpg
│ ├── 003.jpg
迅速で汚い解決策:
#!/bin/bash
for d in /mnt/g/test/* ; do
if [[ -n $(find "$d" -maxdepth 1 -type f) ]]
then
echo ""
else
find "$d" -mindepth 1 -type d -execdir mv "{}" ./.. \;
fi
done
find /mnt/g/test/* -type d -empty -delete