Wie kann ich mit xargs kopieren von Dateien, die Leerzeichen und Anführungszeichen in Ihrem Namen?

Ich versuche, kopieren Sie eine Reihe von Dateien unter einem Verzeichnis eine Reihe von Dateien mit Leerzeichen und einfache Anführungszeichen in Ihrem Namen. Wenn ich versuche zu string zusammen find und grep mit xargs, bekomme ich die folgende Fehlermeldung:

find .|grep "FooBar"|xargs -I{} cp "{}" ~/foo/bar
xargs: unterminated quote

Irgendwelche Vorschläge für eine stabilere Verwendung von xargs?

Dies ist auf Mac OS X 10.5.3 (Leopard) mit BSD xargs.

  • Die GNU-xargs Fehlermeldung für diese mit einem Dateinamen mit einem Apostroph ist eher hilfreich: "xargs: unerreicht einfache Anführungszeichen; standardmäßig Zitate sind spezielle, xargs, es sei denn, Sie verwenden die option -0".
  • GNU-xargs hat auch --delimiter option (-d). Versuchen Sie es mit \n als Trennzeichen, Dies verhindert, dass xargs von der Trennung von Zeilen mit Leerzeichen in mehrere Worte/Argumente.
Schreibe einen Kommentar