Wenn Sie das -f
Flag an rm übergeben, bedeutet dies, dass es sich nicht beschwert, wenn es nicht etwas tun kann, z. B. der Versuch, eine Datei zu entfernen, die sich im Besitz eines anderen Benutzers befindet (z. B. root), oder Sie haben keine Schreibberechtigung für das Verzeichnis. sudo rm -rf /path/to/thedirectory
wird zweifellos das Verzeichnis und die darin enthaltenen Dateien nuke. ls -B thedirectory | cat -ve
kann auch leuchten.
Wie lösche ich ein Verzeichnis, das scheinbar namenlose Dateien enthält?
Ich versuche, ein angeblich leeres Verzeichnis in einem ReiserFS-Dateisystem zu löschen, kann es jedoch nicht, weil es sich rm
immer wieder beschwert, dass das Verzeichnis nicht leer ist.
$ rm -rf thedirectory rm: cannot remove `thedirectory': Directory not empty $ ls -a thedirectory . ..
Das Problem ist, alles, was ich versuche zu tun, um zu bestimmen, was tatsächlich ist in dem Verzeichnis, scheint zu zeigen, dass es drei Dateien ohne Namen . Zum Beispiel:
$ cd thedirectory $ ls ls: cannot access : No such file or directory ls: cannot access : No such file or directory ls: cannot access : No such file or directory $ find . . ./ ./ ./ $ ls -N | cat -A $ $ $
Da ich keine Dateinamen bekommen kann, kann ich stat
diese Mystery-Dateien nicht ausführen . Ein stat
auf dem Verzeichnis selbst ergibt scheinbar normale Ergebnisse:
$ stat . File: `.' Size: 192 Blocks: 0 IO Block: 4096 directory Device: 807h/2055d Inode: 825484 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 1000/ diazona) Gid: ( 1000/ diazona) Access: 2012-01-27 16:32:45.000000000 -0500 Modify: 2012-01-27 16:31:58.000000000 -0500 Change: 2012-01-27 16:31:58.000000000 -0500
Ich nehme an, dass das Dateisystem beschädigt ist, was bedeutet, dass ich herunterfahren, von einem aktiven USB-Laufwerk booten und mein Glück versuchen muss reiserfsck
. Aber gibt es einen einfacheren Weg, um damit umzugehen?
3 Antworten auf die Frage
Have you tried deleting the inode directly?
$ ls -iN | cat -A 794539 $ $ find . -inum 794539 -exec rm -i {} \;
Sie können alle Dateien mit sehen
ls -la /name/of/path
... das eine lange Liste mit allen Punktdateien enthält.
Um ein Verzeichnis und alles darin einschließlich aller anderen Unterverzeichnisse zu entfernen, verwenden Sie:
rm -rf /name/of/path/*
... Seien Sie jedoch vorsichtig, wenn Sie das Platzhalterzeichen verwenden möchten, das zu der (in) berühmten Aussage führt:
rm -rf *
... was sogar für "normale Benutzer" gefährlich ist. Wenn Sie jemals das Platzhalterzeichen verwenden müssen, würde ich Folgendes vorschlagen:
rm -rf /name/of/path
oder
rm -rf ./*
Der letzte Punkt, bei dem der Punkt-Schrägstrich ausgeführt wird, mit der Annahme, dass Sie sich innerhalb des Verzeichnisses befinden, das Sie leeren möchten ... Sie müssen immer noch ein Verzeichnis nach unten verschieben und es außerhalb von sich selbst entfernen.
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4