У меня есть несколько файлов с пробелами в их именах. Я хочу выбрать все файлы, содержащие определенный текст, и скопировать их в другой каталог. Я могу использовать grep
, чтобы сделать первую часть, но застрял в трубке список имен файлов до cp
. cp
всегда разрезает имена файлов в соответствии с пробелами. Я пробовал xargs --null
, и это не помогло мне. Любое практическое решение?Как скопировать файлы с пробелами в их именах
1
A
ответ
0
Используйте --null
опции для обоих grep
и xargs
:
grep --null --files-with-matches 'word' * | xargs --null cp -t "$target_dir"
В --null
опции приводят команды для завершения имен файлов с нулевым байтом, а не новой строкой.