php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2005, 19:39  
Gast
 
Beiträge: n/a
Standard [Erledigt] Problem mit cp und "Argument list too long"

Hallo,

ich bin leider kein Linux Pro, daher brauche ich mal eure Hilfe.
Ich will eine große (...) Anzahl von Dateien aus einem Verzeichnis in das andere kopieren.
Der Befehl dafür sieht ungefähr wie folgt aus:
Code:
cp db_files/test/images/*.* db_files/gepackt/test/programm/html/iip/images/'
Es sollen also einfach alle Dateien von a nach b kopiert werden.
Das Problem ist nur, dass in dem Verzeichnis mehrere tausend Dateien stehen, so das mir die shell nur sagt "Argument list too long".
Wo das Problem liegt, ist mir mittlerweile klar (Wildcards werden in der Shell aufgelöst und dadurch wird die Shell-Zeile zu lang).
Ich bin auch soweit, dass ich mir denke, dass ich irgendwie mit pipe und mehreren Kommandos wie xargs o.ä. das ganze aufteilen muss.
Nur leider komme ich nicht auf die richtige Kombination der Befehle.
Wenn ich mit xargs den Input in Blöcke aufteile, wie leite ich denn dann diese Blöcke an cp weiter, so dass cp diese als Source für die zu kopierenden Dateien akzeptiert?

Konnte ich mich verständlich ausdrücken?
Bin auch für jede Hilfe dankbar!! (fertige Befehle oder auch nur hinweise...)

DANKE!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.10.2005, 20:24  
Gast
 
Beiträge: n/a
Standard

cp db_files/test/images/* db_files/gepackt/test/programm/html/iip/images/
  Mit Zitat antworten
Alt 09.10.2005, 20:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.039
Sclot befindet sich auf einem aufstrebenden Ast
Standard

cp -a db_files/test/images/* db_files/gepackt/test/programm/html/iip/images/

^^^^
Sclot ist offline   Mit Zitat antworten
Alt 09.10.2005, 21:30  
Gast
 
Beiträge: n/a
Standard

Hm... danke für die schnellen Antworten.
Man merkt, ich komme eher aus der DOS - Welt (*.*).
Aber mein Problem lösen eure Antworten nicht.
Wenn ich *.* durch * ersetze (und auch noch ein -a hinzufüge) werden es ja nicht weniger Dateien und ich bekomme noch immer die Meldung "Argument List too long".

Oder habe ich was übersehen / falsch verstanden?
Schon mal wieder Vielen Dank!
  Mit Zitat antworten
Alt 09.10.2005, 23:12  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.039
Sclot befindet sich auf einem aufstrebenden Ast
Standard

so vieeleicht?

cp -a ./db_files/test/images/* ./db_files/gepackt/test/programm/html/iip/images/
Sclot ist offline   Mit Zitat antworten
Alt 10.10.2005, 00:08  
Gast
 
Beiträge: n/a
Standard

versuchs mal so:
1) geh mit der Shell in dein Verzeichnis
2) tippe in die Shell (mit Zeilenumbruch, nicht wundern, dass dann auf einmal ">" steht):
for file in * [Return]
do [Return]
cp $file /hier/soll/die/datei/hin/$file [Return]
done [Return]

vllt. funtkioniert es ja

Gruß,
Jojo
  Mit Zitat antworten
Alt 10.10.2005, 21:11  
Gast
 
Beiträge: n/a
Standard

Danke Jojo... einer, der mein Problem verstanden hat.

ich werde das mal ausprobieren, bin mir allerdings nicht ganz sicher, ob es mich weiterbringt, das ich den Befehl aus PHP heraus aufrufe (mit exec()).
Aber ich werde das zumindest auf der Konsole mal ausprobieren.
THX
  Mit Zitat antworten
Alt 10.10.2005, 23:16  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

am einfachsten wäre wohl
cp -a db_files/test/images db_files/gepackt/test/programm/html/iip/
Das sollte das komplette Verzeichnis kopieren, ohne dass die Shell jeden einzelnen Dateinamen übergeben muss, die wird sich cp dann selber suchen, was das Problem lösen sollte.

Alternativ liesse sich da was mit "find" basteln, also Du lässt find jede einzelne Datei finden, und alle gefundenen Dateien einzeln über -exec (Parameter von find) kopieren.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 11.10.2005, 18:19  
Gast
 
Beiträge: n/a
Standard

Danke Waq... ich werde das zuhause testen.
  Mit Zitat antworten
Alt 11.10.2005, 22:17  
Gast
 
Beiträge: n/a
Standard

Wunderbar... wie einfach manche L�sungen sind.
Statt alle Dateien zu kopieren, einfach das ganze Verzeichnis kopieren.
THX @ Waq --> hat funktioniert

Manchmal habe ich auch ein Brett vorm Kopf
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
Problem mit CAPTCHA patEwing PHP Tipps 2008 0 11.02.2008 21:57
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
guestbook problem #2 PHP Tipps 2005 7 04.01.2005 11:19
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Cookie / localhost / Problem gelöst PHP-Fortgeschrittene 11 02.11.2004 22:41
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cp argument list too long, argument list too long, /bin/cp: argument list too long, /bin/cp: die argumentliste ist zu lang, arg list too long, argument list too long cp, cp die argumentliste ist zu lang, bash: /bin/cp: argument list too long, cp: argument list too long, bash cp \die argumentliste ist zu lang\, linux cp argument list too long, scp die argumentliste ist zu lang, bin cp argument list too long, find argument list too long, cp argumentliste zu lang, linux cp argumentliste zu lang, cp arg list too long, cp linux argument zu lang, cp \argument list too long\, \/bin/cp: argument list too long\

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:38 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.