239 votes

Comment puis-je utiliser xargs pour copier les fichiers qui ont des espaces et des citations dans leurs noms ?

Je suis en train de copier un tas de fichiers ci-dessous un répertoire et un certain nombre des fichiers ont des espaces et des guillemets simples dans leurs noms. Lorsque je tente d’enchaîner et avec `` , j’obtiens l’erreur suivante :

Toutes les suggestions pour une utilisation plus robuste de xargs ?

C’est sur MacOS 10.5.3 avec BSD `` .

202voto

godbyk Points 4357

Vous pourriez également être capable de combiner tout ça dans une commande find unique :

Il gérera les noms de fichiers et de répertoires avec des espaces en eux. Vous pouvez utiliser - nom pour obtenir des résultats sensibles à la casse.

(Ces arguments de ligne de commande fonctionne avec GNU trouver ; Je ne sais pas si ils sont disponibles avec la trouvaille de BSD ou OS x.)

122voto

Chris Jester-Young Points 102876

``

Je ne sais pas s’il prend en charge , ni si prend en charge , léopard, mais GNU c’est tout bon.

74voto

Tometzky Points 8230

C’est plus efficace car il ne fonctionne pas « cp » plusieurs fois :

65voto

oyouareatubeo Points 159

J'ai rencontré le même problème. Voici comment je l'ai résolu:

 find . -name '*FoooBar*' | sed 's/.*/"&"/' | xargs cp ~/foo/bar
 

J'ai utilisé sed pour remplacer chaque ligne d'entrée par la même ligne, mais entourée de guillemets. Dans la page de manuel sed , " ... Une perluète (` `& '') apparaissant dans le remplacement est remplacée par la chaîne correspondant à RE ... " - dans ce cas, .* , la ligne entière.

Cela résout l'erreur xargs: unterminated quote .

53voto

the_minted Points 161

Cette méthode fonctionne sur Mac OSx Lion 10.7.5

 find . | grep FooBar | xargs -I{} cp {} ~/foo/bar
 

Edit: Aussi juste testé la syntaxe exacte que vous avez posté. Cela a également fonctionné très bien sur 10.7.5.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X