Am 17.08.2005 um 14:13 schrieb Kay Patzwald:
ich hatte vor kurzem ein merkwürdiges Problem. Hatte für ca. 2 Stunden einen dhcp-Server installiert und am Laufen. Nach dem Löschen des Pakets mit rpm gab es ein Verzeichnis mit lease-Daten, was nicht automatisch gelöscht wurde. In diesem Verzeichnis lagen über 60000!!! Dateien. 1. Frage: Wieso legt der DHCP-Server so viele Dateien in so kurzer Zeit an?
Kann ich nicht beantworten.
2. Frage: Warum kann ich die nicht alle mit einmal (rm -rvf *) löschen? rm meinte, es wären zu viele Dateien. Ist das normal?
Ja, das ist normal. Der Grund liegt in dem Weg, wie die Shell den Wildcard, also das Sternchen, expandiert. Bevor dir Shell das Kommando "rm" ausführt, ersetzt sie den Wildcard durch eine Liste aller (passenden) Dateien. D.h., die Shell versucht ein Programm auszuführen, und diesem Programm 60000 Parameter zu übergeben. Der Kernel hat aber ein Limit für die maximale Länge einer Parameterliste bei exec*-Aufrufen. Die Shell überschreitet mit ihrem exec*-Aufruf dieses Limit und bekommt den Fehler E2BIG zurückgeliefert. Die Höhe des Limits kannst du mit "getconf ARG_MAX" erfahren. Dein Problem lässt sich auf andere Weise lösen, z.B. durch eine Konstruktion aus "find | xargs rm" (Vorsicht!) bzw 'find -exec'. Gruß, Dennis -- Private Mails bitte an dennis@...! Alles, was an lists@stosberg.net geht und nicht über die Liste kommt, verschwindet ungesehen im Müll.