Warum kann ich einen Ordner nicht löschen?

14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

Ich habe versucht, diese Ordner vom Terminal zu löschen:

rm -r
Tepheno
quelle
2
Wenn diese Fehlerausgabe von Nautilus stammt, können Sie Ihrer Frage einen Screenshot hinzufügen. Was ist auch die Ausgabe rm -rvon Terminal? Hast du es mit den Antworten dieses Beitrags versucht ?
Lucio
1
Verwenden Sie rm -rfstattdessen
Nickanor
Ich habe rm -Rffür das Entfernen von rekursiven Verzeichnissen verwendet worden, kann diese Arbeit für Sie sein. Der Großbuchstabe R bedeutet Rekursiv, siehe Manpagesman rm
revnoise
1
Haben Sie die Berechtigung, dieses Verzeichnis zu entfernen? Bitte führen Sie es aus ls -laund fügen Sie es hier ein, um diese Option zu verwerfen.
revnoise
Der Ordner wurde meiner Meinung nach erst unter Windows gelöscht und dann unter Ubuntu versucht zu löschen. Dann versuchte Windows zu löschen, sagte aber Fehler. Directory not empty aber es ist alles leere Versprechen. Auf Windows heißt es FehlerError x00000
Tepheno

Antworten:

10

Haben Sie versucht sudo rm -r. Welche Art von Dateien gibt es? Sie können auch zuerst alle Dateien und dann den Ordner löschen. Es ist zusätzliche Arbeit, aber manchmal lohnt es sich, die Arbeit zu erledigen.

sudo ist für Superuser-Aktionen.

wlraider70
quelle
Ich kenne sudo und der Ordner hat keine Dateien nur in einem Unterordner. Artist Folder dann Album Folder keine MP3s drin. Nur Ordner.
Tepheno
es funktioniert Kumpel ...
Angelin Nadar
9

Ich hatte dieses Problem mit einem Ordner auf einem BTRFS-Dateisystem. Das Überprüfen von Mountpunkten und lsof ist normal. In meinem Fall handelte es sich um eine Korruption, die durch einen alten Fehler verursacht wurde, der behoben wurde:

Die normalen Dinge, auf die Sie achten sollten:

  • lsof + D <Pfad> - Dies wird l i s t alle o Stift f iles. Sie können keinen Ordner löschen, der geöffnete Dateien enthält, obwohl dies normalerweise einen etwas anderen Fehler zur Folge hätte: "Gerät oder Ressource belegt". Beachten Sie, dass wenn Sie "+ D <Pfad>" weglassen, lsof eine Liste aller Ordner auf allen Dateisystemen anzeigt - was Zeit verschwendet. ;)
  • montieren : Dies zeigt Ihnen die aktuell gemounteten Dateisysteme. Sie können einen aktiv gemounteten Mountpoint oder dessen übergeordnete Ordner nicht löschen.
  • btrfs-Unterliste <Pfad> : Ähnlich wie bei einem Mount-Punkt können Sie ein btrfs-Subvolume nur mit dem btrfs-spezifischen Befehl löschen : btrfs-Subvolume delete <Pfad> .

Korruptionsumgehung

Im Falle einer Beschädigung, die nicht einfach behoben werden kann, besteht die grundlegende Problemumgehung darin, das Dateisystem zu sichern, zu formatieren und dann wiederherzustellen (wobei die fehlerhaften Daten weggelassen werden). Abhängig davon, wie viele Daten Sie im Dateisystem haben, kann dies eine lästige Pflicht sein. : - /

In meinem Fall befand sich der Problemordner in einem Subvolume, daher konnte ich das oben beschriebene Verfahren durchführen, indem ich anstelle des gesamten Dateisystems nur das Subvolume löschte. Ich habe meine Daten gesichert und das Subvolume gelöscht: btrfs sub del <subvolume-path> . Ich konnte dann in einem neuen Subvolume wiederherstellen und den Problemordner weglassen.

Beschädigung von i_size

Die Ursache in meinem Fall war eine Beschädigung von i_size , wo es nicht Null war. Btrfs verwendet die i_size, um festzustellen, ob der Ordner leer ist oder nicht. Um dies zu überprüfen, führen Sie Folgendes aus:

stat -c %s <foldername>

Die i_size eines leeren Ordners in btrfs sollte Null sein. In ext ist es typischerweise 4k.

Ähnliche Links:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory

zaTricky
quelle
6

Versuchen Sie es cdin dem Verzeichnis und entfernen Sie dann alle Dateien mit rm -rf *. Versuchen Sie dann, das Verzeichnis zu verlassen und das Verzeichnis mit rmdirzu löschen.

jkd
quelle
Das funktioniert wunderbar für mich +1 Danke Mann
AndrewL64
Ich habe es versucht und die Fehlermeldung erhalten: "Argumentliste zu lang"
Rafael_Espericueta
1

Versuchen sudo rm -rf [Folder name]

Wenn das Verzeichnis weiterhin nicht leer angezeigt wird, bedeutet dies, dass das Verzeichnis verwendet wird. Versuchen Sie, es zu schließen oder zu überprüfen, welches Programm es verwendet, und verwenden Sie dann den Befehl erneut.

Arbeitete für mich, als ich versuchte, Unity-Projekt zu löschen und es von Unity Hub verwendet wurde. Einfach Unity Hub schließen und den Befehl neu schreiben.

Molham Mohamed
quelle
0

Gehen Sie zu dem Ordner, den Sie löschen möchten, und führen Sie diesen Befehl aus, indem Sie den Ordnernamen durch den Namen Ihres Ordners ändern: rm -rf Ordnername

R bedeutet rekursiv und f bedeutet Kraft.

Ramon Suarez
quelle
rm: cannot remove Wan Pisu - New World': Directory not empty
Tepheno
Hast du benutzt -rf?
Ramon Suarez
-rfIch glaube, ich habe rm -r -f -vSir benutzt.
Tepheno
Ich habe gerade einen Test mit dem gleichen Verzeichnisnamen durchgeführt und er hat für mich funktioniert, auch unter Verwendung Ihrer Methode zum Trennen von RF-V. Sind Sie sicher, dass Sie RF-V verwenden rmund nicht rmdir? Hat Ihnen das ausführliche (-v) Hinweise gegeben? Gibt es auch 0-Byte-Dateien in Ihrem Verzeichnis? "rm -r -f -v Wan \ Pisu \ - \ New \ World / entferntes 'Wan Pisu - New World / test.test' entferntes Verzeichnis: 'Wan Pisu - New World'"
Ramon Suarez
Nein, es sind nur Ordner. Wenn ich es unter Windows Error; 0x-----lösche, kann es auch nicht gelöscht werden. -verklärt, was getan wird Ich weißrm --help
Tepheno
0

Versuchen: rmdir --ignore-fail-on-non-empty *directory*

Jamie
quelle
das macht nichts.
3amsleep
0

Wenn Sie keine Schreibberechtigungen festgelegt haben, können Sie das Verzeichnis nicht entfernen.

Im folgenden Beispiel kann ich das Verzeichnis nicht entfernen, obwohl ich Eigentümer des Verzeichnisses bin. Sobald ich Schreibrechte mit hinzufüge chmod- alles gelingt.

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0
Sergiy Kolodyazhnyy
quelle
0

Ich habe Ordner in Windows, die an eine virtuelle Ubuntu VirtualBox-Maschine (VM) angehängt sind. Ich konnte sie nicht mit rmdiroder aus dem Windows-Dateimanager oder aus der VM entfernen rm -Rf *.

TLDR : Endlich konnte ich sie in Git Bash (natürlich unter Windows) mit entfernenrm -Rf * .

Beim Versuch, Dateien im Windows-Dateimanager zu löschen, wurden Administratorrechte zum Löschen der Ordner benötigt. Aber selbst als Administrator ist es immer noch fehlgeschlagen.

In der Ubuntu-VM (wo ich noch nie Probleme hatte, freigegebene Dateien zu entfernen) wurde der Fehler gemeldet cannot remove protocol error , ebenso wie bei einigen anderen.

Schließlich konnte ich in Git Bash unter Windows die Ordner löschen. Ich vermute, dass Git Bash eine Art Sperre für die Ordner hatte. In Git Bash war mein Arbeitsverzeichnis eines der Verzeichnisse, die ich löschen wollte. Ich habe mich davon zurückgezogen und es dann mit rm -Rfohne Fehler gelöscht .

Buttle Butkus
quelle