Am Mittwoch, 5. September 2007 schrieb Michael Raab:
On Wednesday 05 September 2007 10:00:26 Timothy Kesten wrote:
Hi Folks,
als verwöhnter "Mausschubser" ;-) habe ich mal 'ne blöde bash-Frage: Wie kann ich auf der Konsole viele (> 10.000) Dateien kopieren? cp bringt 'ne Fehlermeldung wegen zu langer Argumentliste.
Any hints?
Mit cp *.* /zum/zielverzeichnis
Geht fast genauso wie der copy-Befehl unter DOS.
nein das geht gerade nicht, denn 1. *.* "liefert" nur Dateien, welche mindestens einen Punkt enthalten 2. *.* wird unter einer Bourne-Shell ausgewertet, mach einfach mal: set -x ls *.* und versuche das Ergebnis zu verstehen Das Ergebnis wird sein, daß das Komando "ls" mit allen Dateien aufgerufen wird, die auf das Muster *.* passen. Wenn die Länge der so gefunden Dateinamen zu groß ist (unter Linux ca. 20Kbyte) dann gibt's eben obige Fehlermeldungen. Lösung: xargs oder Schleifen. Die DOS-Shell hingegen arbeitet anders. Hier werden die drei Zeichen "*.*" an das copy-Programm übergeben, und copy "sucht" dann die Dateien, welche auf das Muster passen. Man kann dem Unix "cp" auch das Muster übergeben: cp "*.*" foo nur wird dann _eine_ Datei namens *.* kopiert, sondenn es eine solche gibt. D,h. die Shell expandiert das Muster *.* nicht, da es in " eingeschlossen ist. Bye Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer