viele Dateien löschen

L

lhakpa

Grünschnabel
hallo,
ich habe ein verzeichnis in dem ich ca 10.000 dateien löschen möchte ...
wenn ich rm dateiname* eingebe kommt :

bash: /bin/rm: Argument list too long

das ganze verzeichnis möchte ich nicht löschen ...
hat jemand eine idee ?
danke
 
Code:
/usr/bin/rm -rf dateiname*
sollte eigentlich gehen. Was issen das für ne Kiste?
 
Wenn die Dateien einem Muster folgen, kannst Du sie stueckweise loeschen, z.B. datei0000 - datei9999:
Code:
rm datei0???
bzw.
Code:
for i in 0 1 2 3 4 5 6 7 8 9 ; do
rm datei${i}???
done
Das laesst sich auch auf andere alphanumerische Zeichen erweitern.
 
Das Problem hatte ich auch schon mal.

Hab das Ganze dann mit

Code:
find . -type f -exec{rm}

oder so ähnlich gemacht.

Für genaue Syntax einfach mal in die man-page kucken.
 
lhakpa schrieb:
funzt alles net ....

was genau funzt denn nicht bzw welche fehlermeldung bekommst du bzw. was

und wie sehn denn die datein aus die du löschen möchtest
ein paar mehr infos könnten nicht schaden
 
Zuletzt bearbeitet:
supersucker schrieb:
Das Problem hatte ich auch schon mal.

Hab das Ganze dann mit

Code:
find . -type f -exec{rm}

oder so ähnlich gemacht.

Für genaue Syntax einfach mal in die man-page kucken.

Meinst wohl so etwas ;)

find . -type f -iname "dateiname*" -exec rm {} \;

Mfg, Lord Kefir
 
Hallo
Für solche Fälle gibt es xargs.

Code:
find /pfad -type f -name "foobar" |xargs rm -f

Bitte vorher mit echo statt rm -f testen, sonst kann sowas in die Hose gehen.

Gruß Wolfgang
 
Mit find und xargs dann aber besser so:
Code:
find /pfad -type f -name "foobar" -print0 |xargs -0 rm -f
sonst dürfte es nämlich schon beim ersten Leerzeichen in die Hose gehen.
 
Mµ*e^13.5_?¿ schrieb:
Mit find und xargs dann aber besser so:
Code:
find /pfad -type f -name "foobar" -print0 |xargs -0 rm -f
sonst dürfte es nämlich schon beim ersten Leerzeichen in die Hose gehen.

Das ist wohl war, aber von Leerzeichen haben wir bisher noch garnicht geredet.
:devil:

Generell ist das natürlich die bessere Variante. ;)

Gruß Wolfgang
 
Einfachste Loesung: MidnightCommander (mc) installieren, falls noch nicht getan. Alle Dateien auswaehlen und loeschen. Fertig.
 
pfui! ich bin mit dem mc mindestens 10mal so langsam, als ohne...
 
theton schrieb:
Einfachste Loesung: MidnightCommander (mc) installieren, falls noch nicht getan. Alle Dateien auswaehlen und loeschen. Fertig.
10000 Dateien auswaehlen? Viel Spass!
 
falls es wen interessiert : ursache fuer den "fehler" ist die durch den kernel vorgebene beschraenkung für die laenge der kommandozeile.

grundsaetzlich gilt : gibt man rm * ein, ersetzt die shell das sternchen durch die dateinamen, schupft diese in eine liste und ruft dann rm mit dieser als argument auf. und bei 10000 dateinamen ist diese liste dann einfach zu lang ;-)

wers genau haben will, hab da noch was gefunden : http://www.gnu.org/software/fileutils/doc/faq/#Argument list too long
 
hoernchen schrieb:
falls es wen interessiert : ursache fuer den "fehler" ist die durch den kernel vorgebene beschraenkung für die laenge der kommandozeile.

grundsaetzlich gilt : gibt man rm * ein, ersetzt die shell das sternchen durch die dateinamen, schupft diese in eine liste und ruft dann rm mit dieser als argument auf. und bei 10000 dateinamen ist diese liste dann einfach zu lang ;-)
configure-Skripte testen auch oft auf die maximale Anzahl der Argumente, und dort sieht man auch, dass es 4096 - wusste nicht, dass das direkt durch den Kernel beschraenkt ist.
 
er will nicht den ganzen ordner-inhalt loeschen, siehe erstes post. auch mit der methode wirds nicht funken, siehe mein beitrag vorher.
 
Man kann im mc auch andere Wildcards zum auswaehlen der Dateien nehmen als '*'. Sofern das loeschen nicht aus einem Skript (z.B. per Cron) gemacht werden muss/soll, ist 'mc' in meinen Augen eine sehr gute Moeglichkeit. Der benutzt naemlich nur soviele Dateien als Argument fuer 'rm', wie moeglich sind (also 4096) und ruft notfalls 'rm' einfach mehrfach auf ohne, dass man sich gross um was kuemmern muss.
 

Ähnliche Themen

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

SSD sicher löschen

wget: Lädt bestimmte Dateitypen nicht

File Rename

Komplette Spalten aus Datei löschen.

Zurück
Oben