Как я могу переместить определенные файлы из одного каталога в другой, используя xargs?

Предположим, что я ввожу эту команду:

find /etc/info/ -name ".c" | xargs -I {} grep -l 'importantFile' {}

Теперь у меня есть все интересующие меня файлы с суффиксом.c и ключевыми словами "важный файл". Как мне переместить его в один из моих текущих каталогов (имя: папка)?

Я старался:

find /etc/info/ -name ".c" | xargs -I {} grep -l 'importantFile' {} mv{} ./folder

и это не работает. Пожалуйста, помогите:p

2 ответа

Если вам нравится поиск, что-то вроде этого должно работать:

xargs -r0 --arg-file <(find . -name "*.c" -type f -exec grep -lZ importantFile {} +
  ) mv -i --target-directory ./folder

Попробуй это

grep -lir 'importantFile' /etc/info/*.c | xargs mv -t ./folder

Это работает для меня, перемещая копирование некоторых PDF

find . -name "*.pdf" | xargs -I % cp % ../testTarget/

Так что для вашего примера это должно быть

 find /etc/info/ -name "*.c" | xargs -I % mv % ./folder
Другие вопросы по тегам