Я получил кучу файлов в некотором каталоге (вместе со многими другими файлами), которые я хочу переместить.
К счастью, все файлы, которые я хочу переместить, содержат в своих именах определенный идентификатор, поэтому я могу ls | grep IDENTIFIER
получить точный список файлов для перемещения.
Но как я могу выполнить mv file /path/to/dest/folder/
сразу, а не один за другим (нужно переместить много файлов)?
источник
mv file1 file2 ... destination
ls
.Вы можете использовать подстановочные знаки .
Пример: переместить все файлы с расширением .doc
mv *.doc /path/to/dest/folder/
Это переместит все документы в текущем каталоге в определенное место назначения.
редактировать
Ответить на комментарий.
mv *.ext *.xml *.txt /path/to/dest/folder/
источник
ABC-IDENTIFIER-XYZ.ext
а некоторые простоIDENTIFIER-XYZ.ext
имеют разные расширения, в основномxml
илиproperties
..xml
файлы (например), которые я не хочу перемещать.Если вы хотите переместить набор ненужных файлов (нет общих шаблонов в именах и типах), вы можете сделать, как сказал г-н Раджананд: сначала перейдите в каталог, содержащий файлы, которые вы хотите переместить
В случае, если файлы разбросаны по разным каталогам, вам нужно только указать путь для каждого файла в команде перемещения
источник
Я использую технику Туомаза, но слегка измененную:
Я нахожу это легче запомнить и сложнее испортить, так как он использует тот же порядок, что и операция vanilla mv:
источник
mv
не упоминает-t
вариант.Используйте эту команду:
Однако ls не рекомендуется для этого вида использования. Вместо этого используйте команду find .
источник
ls
не рекомендуется для этого вида использования. Если вы хотите перечислить файлы, особенно сgrep
подпиской, используйтеfind . -name \*IDENTIFIER\*
.ls
Если у вас есть так много файлов для перемещения, вы можете иметь слишком много для
mv
команды (или других команд, напримерrm
). Я предлагаю использоватьxargs
для перемещения каждого файла по отдельности в виде цикла. Один из способов обойти это сделать:ls -1
(Минус один) гарантирует , что существует только один файл на каждую строке. Если у вас есть скрытые псевдонимы дляls
команды, вы можете иметь несколько имен файлов в одной строке и случайно переместить файл, который вы не собирались перемещать.источник
Если файлы находятся в одном и том же каталоге, вы можете использовать
(протестировано в Ubuntu 16.04)
источник
эта команда переместит имена файлов с любым шаблоном / диапазоном в целевой каталог.
например.
он будет перемещать файлы с такими именами, как
file1
,file2
...file50000
вtarget-directory
.источник
Вы можете использовать вывод из ls для ввода в mv commnad
mv $(ls | grep IDENTIFIER) /path/to/dest/dir
Команда между
$()
возвращает список имен файлов, соответствующих вашему запросу, которые могут быть предоставлены в качестве параметра для команды mv.источник
ls
С помощью этой команды вы можете перемещать несколько файлов.
mv SourceFilenames ~DestinationPath
источник
Самый простой способ такой
или каталог
или как файлы и каталоги
Надеюсь это поможет
источник