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

136

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

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

задан Michael 06.08.2012 в 17:14
источник

7 ответов

178

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

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 найти справочную страницу

    
ответ дан Anwar 06.08.2012 в 17:18
16
mv ~/Downloads/* ~/Videos

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

ответ дан user223289 08.12.2013 в 04:24
2

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

rsync -vau --delete-after src/ dst/

, где:

  • -v , --verbose : увеличение детализации
  • -a , --archive : режим архива; равно -rlptgoD (нет -H,-A,-X )
  • -u , --update : пропускать файлы, которые новее на приемнике
  • --delete-after : удалить файлы на принимающей стороне после завершения передачи

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

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

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

    
ответ дан jrh 12.09.2013 в 14:07
1

Используйте

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

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

    
ответ дан Udit Chugh 26.01.2015 в 00:06
0

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

mv -T dir1 dir2

, где:

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

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

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

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

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

    
ответ дан Feyisayo Sonubi 09.12.2015 в 08:33
0

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

mv ~/Downloads/* ~/Videos

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

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

Это оставляет параметр оболочки.

В один момент времени используйте dotglob, запустите команды в подоболочке:

(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
    
ответ дан Hontvári Levente 22.01.2018 в 11:16