Вопрос: Как переместить все файлы из одной папки в другую с помощью командной строки?


Я хотел бы знать, как можно перенести все файлы из папки в другую папку с помощью командной строки.

Предположим, что я в папке «Мои файлы», и есть 100 файлов, которые я хотел бы переместить в папку «Видео», без необходимости писать все имена файлов.


161
2017-08-06 15:14


Источник


Вы спрашиваете о переезде files но люди, показывающие вам, как двигаться не только files но foldersтакже. Это нормально? - Askar


Ответы:


Откройте терминал и выполните следующую команду:

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 означает только каталог, указанный в команде find. Вы можете попробовать использовать 2, 3 также для проверки.

Смотрите Ubuntu найти справочную страницу для подробного объяснения


225
2017-08-06 15:18



вы можете использовать только mv, чтобы переместить весь каталог в другую папку: mv folder ~ / Documents - JohnMerlino
FYI Я считаю, что ваша первая команда («mv -v ~ / Downloads / * ~ / Videos /») не будет перемещать файлы точек. - Mark Doliner
Да, он не будет перемещать файлы. - Anwar
В северном направлении ваш -print0 | xargs -0 mv -t ~/Videos может быть более эффективно -exec mv -t ~/Videos \{\} \+ :-) - artfulrobot
Да, это правда. Тогда я был новичком, когда я ответил на вопрос - Anwar


mv ~/Downloads/* ~/Videos

Он будет перемещать все файлы, включая подпапки, в каталог, который вы хотите mv, Если ты хочешь cp (копия) или rm (удалить), вам понадобится -r (рекурсивный) вариант для включения подпапок.


17
2017-12-08 03:24



Моя команда mv не имеет опции -R (Ubuntu 14.04). - Mark Doliner
@MarkDoliner, да, mv не требуется рекурсивный вариант для включения подпапок. Его можно использовать и для переименования. - AliNâ
Мне не нужно было *. То же самое произошло без использования звезды. - MycrofD
~ / В префиксе имен папок не всегда работает (не работает на bash и git atleast) - Krish Munot
Это решение даст ошибку, если исходный каталог пуст. - Pierre Thibault


Это возможно, используя rsync, например:

rsync -vau --remove-source-files src/ dst/

где:

-v, --verbose: Увеличьте многословие.

-a, --archive: Режим архива; равняется -rlptgoD (нет -H, -A, -X).

-u, --update: Пропустить файлы, которые новее на ресивере.

--remove-source-files        Это говорит rsync удалить со стороны отправки файлы (что означает не-каталоги), которые являются частью передачи и были успешно дублированы на принимающей стороне.

Если у вас есть права root, префикс с sudo для устранения возможных разрешений.


5
2018-06-06 15:08



ПРЕДУПРЕЖДЕНИЕ! опция -delete-after, как указано, не работает так, как вы ожидали. Он не удаляет источник файлы после успешной копии ... УДАЛИТЬ ВСЕ ОСТАЮЩИЕСЯ / ДРУГИЕ ФАЙЛЫ В НАЗНАЧЕНИИ. (как заметил @kenorb ... но я не читал достаточно внимательно! DOH) - Jay Marm


использование

mv -v ~/rootfolder/branch/* ~/rootfolder

Надеюсь, это поможет. Потому что у меня была такая же боль, и я потратил много времени на исправление моей ошибки.


2
2018-01-25 23:06





  1. Перейдите в командную строку и войдите в каталог, в который хотите cd folderNamehere
  2. Тип pwd, Это напечатает каталог, который вы хотите переместить.
  3. Затем перейдите в каталог, в котором находятся все файлы. cd folderNamehere
  4. Теперь, чтобы переместить все типы файлов mv *.* typeAnswerFromStep2here

Это переместит все файлы из этого каталога в другой.


1
2017-09-12 12:07



Это не будет соответствовать файлам без какого-либо расширения. например, если папка имеет файлы: foo.txt, bar. а также bar и то и другое bar. а также bar не будут перемещены. С помощью * вместо *.* заботится об этом. Но в обоих случаях скрытые файлы вроде: .foobar не будут перемещены. - Dan


Чтобы переместить каталог с содержимым или без него в новое имя, так же, как использовать mv команду переименовать файл:

mv -T dir1 dir2

где:

  • -T рассматривает пункт назначения как обычный файл
  • dir1 это исходное имя каталога
  • dir2 это новое имя каталога

NB: dir2 не должно существовать.

Надеюсь, что это сэкономит кому-то много времени, как noob, до этого я бы создал каталог с новым именем, а затем переместил содержимое каталога в каталог, созданный ранее.

Использовать для подкаталогов

Эта команда полезна, когда многие файлы были сохранены во вложенной папке целевого каталога, т.е. Downloads/mp4, В этом примере выполняется mv -T Downloads/mp4 Videos приведет к mp4 вложенной папке удален и все файлы, содержащиеся внутри, перемещаются в папку «Видео».


0
2017-12-09 07:33



+1, потому что протестировал работу в Xubuntu 14.04. Я добавил пример в этом ответе, чтобы показать, что эта команда вызовет dir1 для удаления. Помимо этой предосторожности, в этом ответе отмечается что-то хорошее для ежедневного использования. - clearkimura
«Чтобы переместить каталог с содержимым или без него на его новое имя» Как вы можете переместить каталог ... в имя? Это бессмысленно. "-T обрабатывает пункт назначения как обычный файл. Как можно указать файл назначения? Вы имеете в виду каталог? - Monica Heddneck
Это похоже на переименование файла на новое имя, как если бы вы делали что-то вроде mv fileA fileB но -T флаг в этом случае обрабатывает каталог назначения / в качестве файла и переименовывает его. - Feyisayo Sonubi


Для простого случая:

mv ~/Downloads/* ~/Videos

Если вы хотите также перемещать файлы точек, установите dotglob вариант оболочки.

shopt -s dotglob
mv ~/Downloads/* ~/Videos

Это оставляет настройку оболочки.

Для однократного использования dotglob выполните команды в подоболочке:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)

0
2018-01-22 10:16





попробуй

find ~/Desktop -type f -iname  "*.mp4" -exec mv {} ~/Videos \;

-тип с аргументом -type вы можете указать тип file.on этот оператор, который является средним file.if с использованием -d, что означает каталог.

-iname: наиболее распространенным и очевидным методом поиска файла является его аргумент -name. Если вы не уверены в его чувствительности к регистру, вы можете использовать аргумент -iname

mv {} и, наконец, указать целевой каталог, а затем перемещать файлы там, используя аргумент mv {}


0
2018-04-01 16:54