Как можно переместить (или скопировать) все файлы определенного типа в каталог в Unix?

Как можно переместить (или скопировать) все файлы определенного типа в каталог в Unix?

Я пока не очень хорошо знаком со всеми трюками grep/find/awk/xargs, так что будьте терпеливы =]

У меня есть определенный тип файла, скажем *.xxx, в случайных местах в определенном каталоге. Как мне найти все такие файлы и переместить их в папку в моем домашнем каталоге в Unix (которая может еще не существовать)?

решение1

Используйте findс execопцией, но сначала создайте целевую папку.

mkdir -p /home/somewhere/else
find /somewhere -iname "*.xxx"

Это выведет список всего, что будет перемещено. Теперь, если вы уверены, что это те файлы, которые вы хотите переместить, выполните следующее:

find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;

В execстроке '{}'будет заменено фактическим именем файла, и он будет перемещен в цель. Аналогично, чтобы скопировать, просто замените mvна cp. \;Для завершения команды необходимо.

Если вам необходимо подтверждение перед каждой файловой операцией, которая приведет к перезаписи уже существующего файла, вы можете добавить опцию -iпосле mvили cpсоответственно.

Нет нужды в grep, xargsи им подобных. Это бы неоправданно усложнило ситуацию.

Связанный контент