У меня есть куча файлов в каком-то каталоге (вместе со многими другими файлами), которые я хочу переместить.
К счастью, все файлы, которые я хочу переместить, содержат определенный идентификатор в своих именах, так что я могу ls | grep IDENTIFIER чтобы получить точный список файлов для перемещения.
Но как я могу выполнить mv file /path/to/dest/folder/ сразу, а не по одному (нужно переместить много файлов)?
Если ты хочешь переехать ABC-IDENTIFIER-XYZ.ext или IDENTIFIER-XYZ.xml, вы можете использовать:
mv *IDENTIFIER* ~/YourPath/
* является подстановочным знаком для ноль или более символов, это означает ноль или более символов, за которым следует IDENTIFIER, за которым следует ноль или более символов.
Это приведет к перемещению всех файлов, которые содержать то IDENTIFIER вы уточнили.
Например, для перемещения всех файлов, имеющих .doc расширение:
mv *.doc /path/to/dest/folder/
Это приведет к перемещению всего файла doc из текущего каталога в определенное место назначения.
Редактировать
Чтобы ответить на комментарий:
но список файлов для перемещения не определяется расширением. некоторые из файлов имеют имена: ABC-IDENTIFIER-XYZ.ext а некоторые просто IDENTIFIER-XYZ.ext все они имеют разные расширения, в основном xml или properties.
Если вы хотите переместить набор произвольных файлов (нет общего шаблона в именах и типах), вы можете поступить так, как сказал г-н Раджананд: сначала перейдите в каталог, содержащий файлы, которые вы хотите переместить
mv file1.ext1 file2.ext2 file3.ext3 /destination/
В случае, если файлы разбросаны по разным каталогам, вам нужно только указать путь к каждому файлу в mv команда.
Если у вас так много файлов для перемещения, у вас на самом деле может быть слишком много для mv команда (или другие команды, такие как rm). Я предлагаю использовать xargs для перемещения каждого файла по отдельности в циклическом режиме. Один из способов обойти это - сделать:
То ls -1 (минус один) гарантирует, что в каждой строке будет только одно имя файла. Если у вас есть скрытые псевдонимы для ls команда вы можете иметь несколько имен файлов в одной строке и случайно переместить файл, который вы не собирались перемещать.