1

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

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

1 ответ1

4

Используйте 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 и их лайках . Это излишне усложнит вещи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .