web-dev-qa-db-fra.com

Pourquoi ai-je le message "Répertoire non vide" lorsque j'essaie de supprimer un répertoire vide?

J'ai ce répertoire vide, mais le message d'erreur suivant continue à apparaître:

Cannot remove test: Directory not empty

Je sais que cette question a été posée à maintes reprises, mais aucune d’entre elles n’a aidé.

J'ai essayé ls -la pour m'assurer qu'il n'y avait pas de fichiers cachés, et il ne semble pas y en avoir: enter image description here

J'ai essayé Sudo rmdir test ainsi que Sudo rm -rf test et je ne sais tout simplement pas ce qui ne va pas.

J'ai lu que cela pourrait être un problème avec le système de fichiers, mais je ne sais pas comment je pourrais y remédier.

35
rbrick

J'ai eu le même problème sur un disque dur externe, j'ai essayé de nombreuses façons en utilisant la ligne de commande, mais j'ai échoué à chaque fois. C'est ce qui a fonctionné pour moi:

  1. Clic droit sur le dossier
  2. Mettre à la corbeille
  3. Poubelle vide

Oui, c'est idiot mais ça a fonctionné pour moi (je ne sais pas vraiment comment et pourquoi, mais ce foutu dossier n'existe plus)

35
Marco Ottina

Vous pouvez le supprimer en tapant Sudo rm -rf {dir_name}. Le répertoire a peut-être été configuré pour une autorisation en lecture seule. J'espère que la commande donnée peut supprimer le dossier.

4
Wolverine

J'ai gagné 10 + système double Ubuntu installé. Et les deux systèmes partagent les partitions de Windows.

Récemment, j'ai également rencontré l'impossibilité de supprimer des dossiers vides dans ces partitions sous Ubuntu. Je ne peux pas trouver de solution pour le résoudre sous Linux.

Cependant, après avoir basculé vers Windows, et exécuter

chkdsk

via cmd pour le disque cible. Quelques erreurs vérifiées. et puis je cours

chkdsk /F

corriger l'erreur de disque.

Après cela, je suis en mesure de supprimer ces dossiers maintenant.

4
e-cloud

J'ai eu le même problème pas en mesure de supprimer le répertoire car il n'est pas vide.

Cette séquence d'opérations a fonctionné pour moi.

  1. De la ligne de commande en premier

    Sudo rmdir  --ignore-fail-on-non-empty folder-name-to-be-deleted
    

La commande ci-dessus aide ubuntu à ignorer le répertoire n'est pas vide.

  1. Ensuite, allez simplement dans le dossier et Maj + Suppr. C'est tout.
4
Amit

Si vous utilisez btrfs, il s’agit peut-être d’un répertoire vide avec un i_size différent de zéro. Vous pouvez vérifier si c'est le cas avec:

stat -c %s test

La taille d'un dossier vide dans btrfs doit être zéro. Dans mon cas, j'ai 6160 avec ~/.config/chromium/Default.

La solution suggérée consiste à démonter le système de fichiers, à exécuter btrfs check pour confirmer le problème et à rechercher d'autres répertoires posant problème, puis enfin à exécuter btrfs check --repair pour résoudre le problème. Cette opération comporte toutefois des risques. Il est donc judicieux de commencer par sauvegarder les fichiers.

Source: FAQ sur les problèmes de Btrfs

2
wzhd

Solution graphique

  1. Déplacer ou couper et coller le dossier dans le dossier corbeille
  2. vider la poubelle

c'est fait.

Solution en ligne de commande

Sudo mv folder_error/ .local/share/Trash

vous pouvez effacer avec trash-cli: trash-empty ou

Sudo rm -fr ~/.local/share/Trash/*
2
Kadir Y.

J'ai eu le même problème sur Ubuntu 16.04 et je l'ai corrigé par:

  1. vider la corbeille
  2. redémarrage

Ouvrir et fermer le gestionnaire de fichiers ne sert à rien - seul le redémarrage a fonctionné.

1
dale

Si le répertoire fait partie d'un système de fichiers monté avec CIFS (également appelé samba) et qu'il contient un fichier qui est un lien symbolique brisé, alors ls ne mentionne pas ce fichier. (J'observe ceci bug sur un client CIFS exécutant 14.04.2 LTS et un serveur exécutant 12.04.5 LTS.)

Donc le répertoire n’est pas vide , mais (sur CIFS) vous n’avez aucun moyen de le voir. Le fichier peut uniquement être vu, et donc ne peut être supprimé, que par une commande exécutée sur le serveur de fichiers hébergeant ce système de fichiers.

1
Camille Goudeseune

essayez cette commande:

Sudo lsof | grep deleted 

Vérifiez dans la liste si votre répertoire est toujours en cours d'utilisation. :RÉ

Si tel est le cas, arrêtez le service et vous pourrez supprimer le répertoire.

0
ashwin2011

Ce problème apparaît lorsque ces dossiers ou fichiers ne sont pas copiés complètement. C'est une erreur d'entrée/sortie. J'ai essayé de supprimer avec Shift+Del ou par des commandes, mais cela n'a pas fonctionné. J'ai essayé un clic droit et "Move to Trash" et cela a fonctionné.

0
lhodeniz