Это будет немного сложно, я думаю: -)
Когда я открываю терминал в папке и запускаю скрипт, этот скрипт должен:
перемещать весь контент из всех подпапок в верхнюю родительскую папку (рекурсивно) удалять все пустые папкиРодительская папка, в которой мы находимся, не будет содержать папок, просто содержимое всех из них.
Должно работать для скрытых файлов и папок. Это было бы очень полезно для уборки дома: -)
Я пробовал что-то вроде:
find . -type f -name "*" -depth | xargs mv ./
Но не повезло.
Спасибо за ваша помощь: -)
find . -type f -exec mv -i -t . {} +
Вместо -i вы можете использовать --backup=numbered, как показано уже @kos.
Чтобы переместить все файлы в рекурсивно в текущем каталоге, обратите внимание, что это переместит все файлы в этот каталог (а не их родительские каталоги):find . -type f -exec mv -i -t . {} +
Прочтите man find, чтобы получить больше информации.
Это должно сделать трюк для вас:
find . -type f -exec mv --backup=numbered "{}" . \; && find . -type d -empty -delete
Это 2 команды поиска, которые первый находит и перемещает файлы, второй запускается только в том случае, если первая команда выполнена успешно и удалит каталоги.
Благодаря Rinzwind для указания опасности дублирования имен файлов, что побудило меня добавить опцию --backup=numbered, первоначально используемую Kos.