Как я могу переместить определенные файлы из одного каталога в другой, используя 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