find . -print0 | grep --null 'FooBar' | xargs -0 ...
Je ne sais pas si grep
prend en charge --null
, ni si xargs
prend en charge -0
, sur Leopard, mais sur GNU tout va bien.
Vous pouvez combiner tout cela en un seul find
commande :
find . -iname "*foobar*" -exec cp -- "{}" ~/foo/bar \;
Cela gérera les noms de fichiers et les répertoires contenant des espaces. Vous pouvez utiliser -name
pour obtenir des résultats sensibles à la casse.
Remarque :Le --
drapeau passé à cp
l'empêche de traiter les fichiers commençant par -
comme options.