У меня есть папка A, которая содержит папку B, которая содержит много файлов. Я хотел бы избавиться от папки B, но не от ее содержимого. Я хочу, чтобы это содержимое было внутри папки A. Как я могу сделать это в командной строке?
2 ответа
27
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB
2
Быстрый ответ:
cd /path/to/folderA
find folderB -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir folderB
Кодовый ответ:
cd /path/to/folderA
folderB_temp="$(mktemp -d -t folderB.XXXXXX)"
mv folderB "$folderB_temp"
find "$folderB_temp/folderB" -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir --parents --ignore-fail-on-non-empty "$folderB_temp/folderB"