Skip to main content

Dateien löschen anhand der inode-Nummer - Datei läßt sich nicht löschen

Eine Datei mit Sonderzeichen oder Leerzeichen läßt sich nicht löschen. Wie löse ich dieses Problem?

Zum Beispiel folgende Datei:

[root@bash]# ls -al
drwxr-xr-x  2 root root 4096 2007-10-19 19:56 .
drwxr-x--- 32 root root 4096 2007-10-19 19:47 ..
-rw-r--r--  1 root root    0 2007-10-19 19:56 \abc \+dgh $

Das File kann natürlich auch mit „rm -f „\abc \+dgh $“ oder Tab-Completion gelöscht werden, aber es gibt Situationen, da ist das nicht so einfach möglich. Wie lösche ich dann solche Dateien? Ganz einfach:

[root@bash]# ls -ail
2479588 drwxr-xr-x  2 root root 4096 2007-10-19 20:01 .
2478209 drwxr-x--- 32 root root 4096 2007-10-19 19:47 ..
2479591 -rw-r--r--  1 root root    0 2007-10-19 20:01 \abc \+dgh $

mit „ls -ali“ (a zeigt alle, l die Liste und i die Inode-Nummer der Datei) bekommt man die Inode der Datei heraus. Jetzt kann die Datei mit dem folgenden Befehl gelöscht werden:

[root@bash]# find . -inum 2479591 -exec rm -f {} \;