Una delle mie pratiche comuni è eseguire greps su tutti i file di un certo tipo, ad esempio, trovare tutti i file HTML che contengono la parola "rumpus". Per farlo, io uso
find /path/to -name "*.html" | xargs grep -l "rumpus"
Occasionalmente, findrestituirà un file con uno spazio nel suo nome come my new file.html. Quando viene xargspassato a grep, tuttavia, ottengo questi errori:
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
Vedo cosa sta succedendo qui: o la pipe o the xargssta trattando gli spazi come delimitatori tra i file. Per la mia vita, però, non riesco a capire come prevenire questo comportamento. Può essere fatto con find+ xargs? O devo usare un comando completamente diverso?