Pourquoi je ne peux pas supprimer un dossier?

14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

J'ai essayé de supprimer ces dossiers du terminal avec:

rm -r
tepheno
la source
2
Si cette sortie d'erreur provient de nautilus, vous pouvez ajouter une capture d'écran à votre question. De plus, quelle est la sortie rm -rdu terminal? Avez-vous essayé avec les réponses de ce post ?
Lucio
1
utiliser à la rm -rfplace
nickanor
J'ai été utilisé rm -Rfpour supprimer les répertoires de manière récursive, peut-être ce travail pour vous. Le R majuscule signifie récursif, voir les pages de man rm
manuel
1
Êtes-vous autorisé à supprimer ce répertoire? Veuillez l'exécuter ls -laet le coller ici pour ignorer cette option.
revnoise
Je pense que le dossier a d'abord été supprimé sur Windows, puis a essayé de le supprimer sur Ubuntu. Ensuite, j'ai essayé de supprimer sous Windows mais a dit une erreur. Directory not empty mais sa promesse tout vide. Sur Windows, il dit erreurError x00000
tepheno

Réponses:

10

Avez-vous essayé sudo rm -r. Quel type de fichiers existe-t-il? Vous pouvez également supprimer d'abord tous les fichiers, puis supprimer le dossier. C'est du travail supplémentaire, mais cela en vaut parfois la peine pour faire le travail.

sudo est destiné aux actions de superutilisateur.

wlraider70
la source
Je connais sudo et le dossier ne contient aucun fichier à l'intérieur d'un seul sous-dossier. Dossier d'artiste puis dossier d'album sans MP3 à l'intérieur. Juste dossier.
tepheno
ça marche mec ...
Angelin Nadar
9

J'ai eu ce problème avec un dossier sur un système de fichiers btrfs. La vérification des points de montage et de lsof est la chose normale à rechercher. Dans mon cas, il s'agissait d'une corruption causée par un ancien bug, corrigé depuis:

Les choses normales à vérifier:

  • lsof + D <path> - Ce sera l i s t tout o pen f iles. Vous ne pouvez pas supprimer un dossier contenant des fichiers ouverts, mais cela donnerait normalement une erreur légèrement différente: "Périphérique ou ressource occupé". Notez que si vous omettez le "+ D <chemin>", lsof affichera une liste de tous les dossiers sur tous les systèmes de fichiers - ce qui fera perdre du temps. ;)
  • mount : Cela vous montrera les systèmes de fichiers actuellement montés. Vous ne pouvez pas supprimer un point de montage monté activement ou ses dossiers parents.
  • btrfs sub list <path> : Comme pour un point de montage, vous ne pouvez pas supprimer un sous-volume btrfs sauf en utilisant la commande spécifique à btrfs : btrfs subvolume delete <path> .

Solution de contournement de la corruption

Dans le cas d'une corruption où elle ne peut pas être facilement réparée, la solution de base consiste à sauvegarder, formater le système de fichiers, puis restaurer (en laissant de côté les mauvaises données). Selon la quantité de données que vous avez dans le système de fichiers, cela peut être une corvée. : - /

Dans mon cas, le dossier de problème était à l'intérieur d'un sous-volume, j'ai donc pu faire ce qui précède, mais en supprimant uniquement le sous-volume au lieu de l'ensemble du système de fichiers. J'ai sauvegardé mes données et supprimé le sous-volume: btrfs sub del <subvolume-path> . J'ai ensuite pu restaurer dans un nouveau sous-volume, en laissant de côté le dossier de problème.

Corruption de i_size

Dans mon cas, la cause était la corruption d' i_size , où elle n'était pas nulle. Btrfs utilise i_size pour indiquer si le dossier est vide ou non. Pour vérifier cela, exécutez:

stat -c %s <foldername>

La taille_i d'un dossier vide dans btrfs doit être nulle. En ext, il est généralement de 4k.

Liens connexes:

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

zaTricky
la source
6

Essayez cddans le répertoire, puis supprimez tous les fichiers en utilisant rm -rf *. Essayez ensuite de sortir du répertoire et utilisez rmdirpour supprimer le répertoire.

jkd
la source
Cela fonctionne très bien pour moi +1 Merci mec
AndrewL64
J'ai essayé cela et j'ai reçu le message d'erreur: "Liste d'arguments trop longue"
Rafael_Espericueta
1

Essayer sudo rm -rf [Folder name]

S'il affiche toujours Directory non vide, cela signifie que le répertoire est utilisé. essayez de le fermer ou vérifiez quel programme l'utilise, puis réutilisez la commande.

A fonctionné pour moi lorsque j'essayais de supprimer le projet Unity et qu'il était utilisé par le hub de l'unité. simplement fermé l'unité centrale et réécrit la commande a bien fonctionné.

Molham Mohamed
la source
0

Accédez au dossier juste avant celui que vous souhaitez supprimer et exécutez cette commande en changeant le nom de dossier par le nom de votre dossier: rm -rf nom de dossier

R signifie récursif et f signifie force.

Ramon Suarez
la source
rm: cannot remove Wan Pisu - New World': Directory not empty
tepheno
L'avez-vous utilisé -rf?
Ramon Suarez
-rfJe pense que j'ai utilisé rm -r -f -vmonsieur.
tepheno
Je viens de faire un test avec le même nom de répertoire et cela a fonctionné pour moi, en utilisant également votre façon de séparer rf v. Êtes-vous sûr que vous utilisez rmet non rmdir? Le verbeux (-v) vous a-t-il donné des indices? De plus, y a-t-il des fichiers de 0 octet dans votre répertoire? "rm -r -f -v Wan \ Pisu \ - \ New \ World / supprimé 'Wan Pisu - New World / test.test' a supprimé le répertoire: 'Wan Pisu - New World'"
Ramon Suarez
non, ce ne sont que des dossiers. De plus, lorsque je le supprime sous Windows, il Error; 0x-----ne peut pas également être supprimé. -vexplique ce qui se fait, je saisrm --help
tepheno
0

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

Jamie
la source
cela ne fait rien.
3amsleep
0

Si vous n'avez pas d'autorisations d'écriture définies, vous ne pouvez pas supprimer le répertoire.

Dans l'exemple ci-dessous, même si je suis propriétaire du répertoire, je ne peux pas le supprimer. Une fois que j'ajoute des autorisations d'écriture avec chmod- tout réussit.

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
la source
0

J'ai des dossiers dans Windows qui sont montés sur une machine virtuelle (VM) Ubuntu VirtualBox. Je ne pouvais pas les supprimer du gestionnaire de fichiers Windows ou de l'intérieur de la machine virtuelle en utilisantrmdir ou rm -Rf *.

TLDR : J'ai finalement pu les supprimer dans Git Bash (dans Windows, bien sûr), en utilisant rm -Rf *.

Lorsque j'ai essayé de supprimer dans le gestionnaire de fichiers Windows, il m'a dit que j'avais besoin des privilèges d'administrateur pour supprimer les dossiers. Mais, même en tant qu'administrateur, il a toujours échoué.

Depuis la machine virtuelle Ubuntu (où je n'ai jamais eu de problème pour supprimer des fichiers partagés auparavant), j'ai eu l'erreur cannot remove protocol error , ainsi que d'autres.

Enfin, dans Git Bash sous Windows, j'ai pu supprimer les dossiers. Je suppose que Git Bash avait une sorte de verrou sur les dossiers. Dans Git Bash, mon répertoire de travail était l'un de ceux que j'essayais de supprimer. Je l'ai retiré et l'ai supprimé en utilisant rm -Rfsans aucune erreur.

Buttle Butkus
la source