find und Leerzeichen in Dateinamen

30/07/2010 - 15:19 von Jörg Rolef | Report spam
Hallo zusammen,

ich möchte bestimmte Dateien mit find zusammensuchen und sie gemeinsam
als Argumente an ein Kommando übergeben. Leider durchsuche ich ein
Windows-Verzeichnis und es gibt nach alter MS-Manier viele Leerzeichen
in den Dateinamen. Also:

cp $(find . -iname "*.xls") Zielverzeichnis

, und das erzeugte Kommando lautet dann beispielsweise

cp ./Erste Datei.xls ./Zweite Datei.xls Zielverzeichnis

, was wegen der Spaces im Dateinamen dazu führt, dass die Shell 4 zu
kopierende Dateien ausmacht und nicht finden kann.

Wie kann ich das obige Kommando veràndern, dass wie gewünscht so etwas
generiert wird:

cp "./Erste Datei.xls" "./Zweite Datei.xls" Zielverzeichnis

? Das ganze unter der bash.

Ich freue mich über jeden Tipp.

Viele Grüße,
Jörg
 

Lesen sie die antworten

#1 Christian Schneider
30/07/2010 - 15:28 | Warnen spam
Thus spake Jörg Rolef ():
ich möchte bestimmte Dateien mit find zusammensuchen und sie gemeinsam
als Argumente an ein Kommando übergeben. Leider durchsuche ich ein
Windows-Verzeichnis und es gibt nach alter MS-Manier viele Leerzeichen
in den Dateinamen. Also:

cp $(find . -iname "*.xls") Zielverzeichnis

, und das erzeugte Kommando lautet dann beispielsweise

cp ./Erste Datei.xls ./Zweite Datei.xls Zielverzeichnis

, was wegen der Spaces im Dateinamen dazu führt, dass die Shell 4 zu
kopierende Dateien ausmacht und nicht finden kann.

Wie kann ich das obige Kommando veràndern, dass wie gewünscht so etwas
generiert wird:

cp "./Erste Datei.xls" "./Zweite Datei.xls" Zielverzeichnis



$ find . -iname "*.xls" -exec cp '{}' Zielverzeichnis ';' # Ungetestet
Linux is for people who hate Windows | Christian 'strcat' Schneider
FreeBSD is for people who hate Linux | http://www.strcat.de/
NetBSD is for people who hate OpenBSD | http://www.strcat.de/blog/
OpenBSD is for people who hate everything | http://www.strcat.de/rtfm/

Ähnliche fragen