it-swarm.com.de

"'some_directory' kann nicht entfernt werden: Verzeichnis nicht leer"

Ich habe versucht, ein Verzeichnis zu löschen, aber

$ rm DE.aspx_files -r
rm: cannot remove `DE.aspx_files': Directory not empty

Die Auflistung des Inhalts gibt jedoch keine zurück

$ ls DE.aspx_files
$

Hinzugefügt : Eigentlich

$ ls -la DE.aspx_files

total 4
drwx------ 1 ting ting 4096 Sep 14 20:48 .
drwx------ 1 ting ting    0 Sep 13 22:34 ..
-rw------- 1 ting ting    0 Sep 13 22:34 .Fuse_hidden0001d4bf00000006

Wenn ich versuche rm .Fuse_hidden0001d4bf00000006, es wird gelöscht, aber ein weiteres neues .Fuse_hidden0001d4bf00000007 erstellt.

Ich frage mich also, was passiert ist und wie ich dieses Problem beheben kann.

Hinweis: Es handelt sich um eine neu gekaufte externe tragbare Festplatte, und ich kopiere nur einige Dateien mit einem Datenwiederherstellungsprogramm darauf.

Betriebssystem: Ubuntu 12.04

Vielen Dank!

29
Tim

Versteckte Dateien

Möglicherweise haben Sie Dateien versteckt. Sie finden sie mit ls -la um sicherzustellen, dass Sie damit einverstanden sind, sie zuerst wirklich zu löschen. Anschließend können Sie die Dateien löschen, bevor Sie rm -r oder rmdir nach Bedarf.

Erzwingen des rekursiven Löschens

Sie können auch einfach rm -rf, um das rekursive Löschen zu erzwingen, auch wenn das Zielverzeichnis Dateien enthält. Es gelten alle üblichen Warnungen, aber die Aufgabe wird erledigt, unabhängig davon, was Ihr Verzeichnis enthält - sofern Sie zum Löschen der Dateien und Verzeichnisse berechtigt sind.

16
CodeGnome

Dateien der Form .Fuse_hidden* werden von Fuse Dateisystemen erstellt, wenn eine Datei gelöscht wird, aber noch irgendwo verwendet wird und noch einen Verzeichniseintrag haben muss. Dies ähnelt .nfs* Dateien in Verzeichnissen, die über NFS exportiert wurden.

Lauf df -T ., um den Typ des Dateisystems anzuzeigen, das im aktuellen Verzeichnis gemountet ist, und seinen Mountpunkt. Bei einer externen Festplatte besteht die Möglichkeit, dass dies ein NTFS-Dateisystem ist, das über den Treiber NTFS-3G bereitgestellt wird, der auf Fuse basiert.

Der Name ist ein gefälschter Name, den der Dateisystemtreiber für eine gelöschte Datei erfindet. Sie können die Datei nicht löschen (oder besser gesagt, wenn Sie die Datei erstellen, wird sie unter einem anderen Namen wieder angezeigt). Sie können das Verzeichnis auch nicht löschen, da es nicht leer ist. Sie müssen herausfinden, was diese Datei verwendet. Die wahrscheinlichste Ursache für die Verwendung ist, wenn sie von einer Anwendung geöffnet wird. Lauf lsof /media/mount-point wo /media/mount-point ist der Dateisystem-Mountpunkt und sucht in diesem Verzeichnis nach einer geöffneten Datei.

Für externe Festplatten könnte dieses Problem behoben werden durch:

  • Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie Move to Trash
  • Den Mülleimer ausleeren

Es hat bei mir funktioniert, auch wenn rm -rf hat nicht funktioniert.

13
DileepNimantha

Dies kann passieren, wenn Sie eine Datei auch in einen Torrent-Client einfügen. Stellen Sie einfach sicher, dass Sie den Torrent-Client ausschalten, oder entfernen Sie den Seeding-Torrent.

0
Daniel Reid

Beachten Sie auf dem Mac auch * .lokalisierte Dateien, die selbst für 'ls -la', 'find' und deren Inhalt in einem Fuse-Dateisystem unsichtbar werden können. [Dies wurde mithilfe eines von ConnectedData Transporter erstellten Fuse-Dateisystems auf einem MacBook Pro festgestellt.]

0
Dave

Eine häufige Möglichkeit besteht darin, dass das Verzeichnis von einem laufenden Prozess gehalten wird. Lauf ps aux um nach verdächtigen Dingen zu suchen. Versuchen Sie auch, den Computer neu zu starten.

0
SmallChess