Я хотел бы знать, как я могу переместить все файлы из папки в другую папку с помощью командной строки.
Допустим, я нахожусь в папке «Загрузки», и я хочу переместить 100 файлов в папку «Видео» без необходимости записывать все имена файлов.
Я хотел бы знать, как я могу переместить все файлы из папки в другую папку с помощью командной строки.
Допустим, я нахожусь в папке «Загрузки», и я хочу переместить 100 файлов в папку «Видео» без необходимости записывать все имена файлов.
Ответы:
Откройте терминал и выполните эту команду:
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 для подробного объяснения.
-print0 | xargs -0 mv -t ~/Videos
может быть более эффективно сделан с -exec mv -t ~/Videos \{\} \+
:-)
mv -v ~/Downloads/* ~/Videos/
не работает для скрытых файлов
mv ~/Downloads/* ~/Videos
Он переместит все файлы, включая подпапки, в каталог, который вы хотите mv
. Если вы хотите cp
(скопировать) или rm
(удалить) вам понадобится -r
(рекурсивная) опция для включения подпапок.
mv
не требуется рекурсивная опция для включения подпапок. Можно использовать это также для переименования.
Для простого случая:
mv ~/Downloads/* ~/Videos
Если вы также хотите переместить точечные (скрытые) файлы, установите параметр оболочки dotglob .
shopt -s dotglob
mv ~/Downloads/* ~/Videos
Это оставляет опцию оболочки установленной.
Для однократного использования dotglob выполните команды в подоболочке:
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
(shopt -s dotglob; mv ~/Downloads/* ~/Videos)
только перемещает (режет) содержимое (включая скрытые файлы). В этом случае папка отправления и назначения должны уже существовать. В конце каталог источника становится пустым.
Это возможно с помощью rsync
, например:
rsync -vau --remove-source-files src/ dst/
где:
-v
,--verbose
: Увеличить многословие.
-a
,--archive
: Режим архива; равна-rlptgoD
(нет-H
,-A
,-X
).
-u
,--update
: Пропустить файлы, которые новее на приемнике.
--remove-source-files
Это говоритrsync
об удалении со стороны отправки файлов (то есть не-каталогов), которые являются частью передачи и были успешно продублированы на принимающей стороне.
Если у вас есть привилегии суперпользователя, используйте префикс, sudo
чтобы отменить возможные проблемы с разрешениями
Чтобы переместить каталог с содержимым или без него на новое имя, как если бы вы использовали mv
команду для переименования файла:
mv -T dir1 dir2
где:
-T
обрабатывает место назначения как обычный файлdir1
оригинальное имя каталогаdir2
это новое имя каталогаNB: dir2
не должно существовать
Я надеюсь, что это сэкономит кому-то много времени, как нуб, перед этим я бы создал каталог с новым именем, а затем переместил бы содержимое каталога в каталог, созданный ранее.
Использовать для подкаталогов
Эта команда полезна , когда многие файлы были сохранены в папке целевого каталога , т.е. Downloads/mp4
. В этом примере выполнение mv -T Downloads/mp4 Videos
приведет mp4
к удалению подпапки, а все содержащиеся в ней файлы будут перемещены в папку «Видео».
dir1
к удалению. Помимо этой меры предосторожности, в этом ответе отмечено что-то хорошее для ежедневного использования.
mv fileA fileB
но -T
флаг в этом случае рассматривает папку назначения / как файл и переименовывает его.
cd folderNamehere
pwd
. Это напечатает каталог, который вы хотите переместить тоже.cd folderNamehere
mv *.* typeAnswerFromStep2here
Это переместит все файлы из этого каталога в другой.
foo.txt
, bar.
а bar
так bar.
и bar
не будет перемещена. Использование *
вместо того, чтобы *.*
позаботиться об этом. Но в обоих случаях скрытые файлы, такие как: .foobar
не будут перемещены.
mv source_path/* destination_path/
здесь вы должны поставить косую черту и *
после пути к исходному тексту, чтобы он брал файлы внутри source_path вместо полного исходного каталога.
Пример: mv /home/username/test/* /home/username/test2/
Приведенная выше команда перемещает все файлы (если они не скрыты) из исходного каталога в целевой каталог.
попробуй
find ~/Desktop -type f -iname "*.mp4" -exec mv {} ~/Videos \;
-type с аргументом -type вы можете указать тип file.on в этом операторе, который является средним значением file.if, используя -d, который означает каталог.
-iname: наиболее распространенный и очевидный способ поиска файла - использовать аргумент -name. Если вы не уверены в его чувствительности к регистру, вы можете использовать аргумент -iname
mv {} и, наконец, указать целевой каталог, а затем переместить туда файлы, используя аргумент mv {}
files
но люди показывают вам, как двигаться не только,files
ноfolders
и хорошо. Это нормально?