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 {} \;
No Comments