Однією з моїх поширених практик є виконання файлів «greps» на всіх файлах певного типу, наприклад, знайти всі файли HTML, у яких є слово «rumpus». Для цього я використовую
find /path/to -name "*.html" | xargs grep -l "rumpus"
Інколи findповерне файл із пробілом у його імені, наприклад my new file.html. Однак, коли xargsце передається цьому grep, я отримую ці помилки:
grep: /path/to/bad/file/my: No such file or directory
grep: new: No such file or directory
grep: file.html: No such file or directory
Я бачу, що тут відбувається: або труба, або xargsобробка пробілів розглядаються як роздільники між файлами. Хоча за все життя я не можу зрозуміти, як запобігти цій поведінці. Чи можна це зробити за допомогою find+ xargs? Або я повинен використовувати зовсім іншу команду?