Для этого откройте терминал и выполните следующую команду:
mv -v ~/Downloads/* ~/Videos/
Все файлы и папки будут перемещены из папки «Загрузки» в папку «Видео».
Чтобы переместить все файлы, но не папки:
Но, если вы хотите переместить все файлы (кроме папок) из папки «Загрузки» в папку «Видео», используйте эту команду
find ~/Downloads/ -type f -print0 | xargs -0 mv -t ~/Videos
Чтобы переместить только файлы из папок загрузки, но не из подпапок:
Если вы хотите переместить все файлы из папки «Загрузки», но не файлы внутри папок в папке «Загрузка», используйте эту команду:
find ~/Downloads/ -maxdepth 1 -type f -print0 | xargs -0 mv -t ~/Videos
здесь -maxdepth
опция указывает, насколько глубоко должен пытаться найти, что
1
означает только каталог, указанный в команде поиска. Вы можете попробовать использовать 2
, 3
также для тестирования.
Смотрите страницу поиска Ubuntu для подробного объяснения.
Решение
Команда найдет все обычные файлы в
/src/dir
(включая все подкаталоги) и переместит их в папку/dst/dir
с помощью командыmv
. Просто замените каталоги вашими. Файлы с одинаковыми именами будут переименованы автоматически.Выбор файлов для перемещения
Если вы хотите переместить только файлы MP3, добавьте
-iname "*.mp3"
опцию вfind
команду после-type f
.Сравнение с ответом c0dev
Только вторая команда в ответе c0dev отвечает на вопрос. Ниже, как это сравнить с этим ответом. Пункты 3. и 4. могут быть решены в другом ответе так же, как здесь.
mv
что для решения с помощью-exec +
не нужно вызывать дополнительную команду, напримерxargs
или,parallel
и дважды передавать имена файлов.--backup=numbered
. К сожалению, эти резервные копии с суффиксами наподобие~3~
будут скрыты в большинстве файловых систем по умолчанию. К сожалениюmv
, не позволяет изменить суффикс, но он может быть легко обработан дополнительными командами. Это расширение GNU.-print0
-exec command {} +
является частью стандартов IEEE Std 1003.1 (POSIX), ISO / IEC 9945 и Единой спецификации UNIX. Таким образом, он должен быть более портативным. См. IEEE Std 1003.1, издание 2004 года , IEEE Std 1003.1, издание 2013 года и 0000243: добавьте -print0 для «поиска» . Но в любом случае обязательным-t
переключателемmv
является расширение GNU, поэтому вся команда не переносима между системами POSIX.Примечание: В случае
find
будет иметь возможность производить пути , начинающиеся с-
(я не знаю ни одного такого осуществленияfind
на данный момент.){}
Должен предшествовать индикатор конца-опций:--
.источник
{}
это последний аргумент. Исправлено.К сожалению, у меня недостаточно высокая репутация, чтобы комментировать помеченное решение. Однако я хотел предупредить других о проблеме, с которой столкнулся. Это довольно любительское; однако, когда вы делаете несколько вещей, это может сначала не прийти в голову. Надеюсь, это поможет другим.
проблема
Варианты следующего сообщения были предоставлены после запуска команды. Затем команда создает несколько файлов.
причина
/src
Является родителем/dst
(например/src/../dst/
).Решение
Хотя может быть и лучшее решение, я просто переместил файлы во временный каталог за пределами моего
/src
каталога, а затем снова выполнил команду, чтобы поместить их обратно в/src/../dst
каталог, в котором они хотели бы оказаться.источник
Мой однострочник - это работает на Mac, но должно работать и на любом * nix. Начать с родительского каталога.
Первая часть перемещает все из всех подпапок в фактическую папку, из которой вы помещаете команду; вторая часть проверяет, являются ли подкаталоги пустыми (они должны теперь :-), и удаляет их, чтобы вы получили все здесь без подкаталогов.
источник
-not
оператор нестандартный, поэтому ваша команда менее переносима, чем другие.Откройте терминал, перейдите в вашу папку с файлами и запустите,
find . -mindepth 2 -type f -print -exec mv {} . \;
чтобы переместить все файлы из этих подкаталогов в текущий.источник