phpbar.de logo

Mailinglisten-Archive

[php] wo koennte das stehen

[php] wo koennte das stehen

Christoph Jeschke christoph.jeschke at gmail.com
Die Okt 3 10:37:43 CEST 2006


* Norbert Pfeiffer:

Hallo Norbert,

> vor einiger Zeit habe ich viele Dateien mit PHP in einen Ordner
> schreiben lassen und konnte sie dann nicht mehr loeschen, weil
> "rm -f" versagte. "Zu viele Argumente" bekam ich als Errormeldung.

JFTR: Ja. rm -f * wird auf der Kommandozeile zu rm -rf Datei
[,Datei[,Datei]] expandiert. Ist diese Zeile länger als in
include/linux/binfmts.h angegeben (üblicherweise 32 MAX_ARG_PAGES mit
jeweils 4 KB, also 128 kB), kommt diese Fehlermeldung.

> Nun suche ich jemanden, der mir sagen kann, wie ich den Grenzwert
> der Argumentliste von "rm -f" finde.

In include/linux/binfmts.h

> Ist die absolute Groesse der Liste der Dateinamen entscheidend?

Ja. Üblicherweise 128 kB.

> Oder ist es nur deren Anzahl und wo koennte das stehen?
> "man rm" hilft hier auch nicht wirklich ... :-(

Richtig. Um die Begrenzung zu umgehen gibt es einige Möglichkeiten:
Einmal könnte man über for für jede Datei einen rm-Prozess starten,
andererseits könnte man das auch ganz einfach mit Hilfe von find und
xargs erledigen:

find / -name foo.* -print0 | xargs -0 rm

Das ist die effizienteste Lösung.

Gruß,
Christoph

php::bar PHP Wiki   -   Listenarchive