Как я могу переместить файлы, содержащиеся во всех подкаталогах, в текущий каталог, а затем удалить пустые подкаталоги?
Я нашел этот вопрос , но адаптирую ответ на:
mv * .
не сработало; Я получил много предупреждений в виде:
mv: wil and ./wil are identical
Файлы, содержащиеся в подкаталогах, имеют уникальные имена.
источник
-n, --no-clobber
не перезаписывать существующий файл. Возможно, вас это тоже заинтересует-b, --backup
.Попробуй это:
Больше информации: попробуйте найти находку в одиночку, она должна дать вам список всех файлов, которые вы хотите переместить (не включайте
-print0
). Пример:с
-print0
иxargs
вы сейчас создаете список операторов для выполнения. В-J %
означает флаг, вставка списка элементов здесь, так чтоmv $FILE .
выполняется для каждого найденного файла.Выше работает для BSD XARGS. Если вы используете GNU-версию (Linux), возьмите
-I %
вместо-J %
источник
Баш 4:
источник
1 быстрый трюк, работает, только если ваши файлы имеют расширения (с точкой):
источник
Просто запустите эту команду :-)
mv **/*.* .
источник
.
в своем имени, не так ли?