"Comment résoudre le problème "Le dossier n'est pas vide" lors de l'exécution de la commande rmdir dans un script batch ?" - dépassement de capacité
Le problème fréquent dans les systèmes Linux est l'erreur "Rmdir : Répertoire Non Vide". Ce problème se produit lorsqu'un utilisateur essaie de supprimer un répertoire non vide sous Linux, ce qui empêche la suppression du dossier en utilisant la commande rmdir. Les parties ci-dessous détaillent comment régler ou contourner cette anomalie sur les systèmes Linux.
Méthode 1 : Supprimer un répertoire non vide sous Linux à l'aide de la commande rm
La réponse la plus facile est d'utiliser rm plutôt que rmdir. La syntaxe de base de la commande rm est rm <options> <fichier>. Si le répertoire est vide, l'option "-d" le supprime. Cependant, si le répertoire contient des fichiers, l'option "-r" peut être employée afin de supprimer le répertoire indiqué et son contenu de façon répétitive.
- Prenons par exemple le cas suivant :
rm -r directory
- Pour obliger la suppression d'un dossier, utilisez l'option -f de la manière suivante :
rm -rf directory
- Si le chemin ou le nom de votre répertoire a des espaces, mettez-le entre guillemets :
rm -rf “directory”
- Pour résoudre les problèmes d'autorisation, utilisez sudo :
sudo rm -rf directory
- Enfin, évitez d'utiliser sudo rm -rf /, qui supprimera le contenu du répertoire principal, c'est-à-dire tous les systèmes de fichiers montés.
Méthode 2 : Effacer le dossier non vide sous Linux en utilisant le gestionnaire de fichiers
Lorsque l'interface graphique échoue, nous avons recours à la ligne de commande. Aussi bizarre que cela puisse paraître, c'est précisément l'inverse dans cette situation. De nombreux utilisateurs ont signalé que la suppression du répertoire en passant par l'explorateur de fichiers avait réussi. Cela mérite d'être essayé avant d'explorer d'autres possibilités.
Étape 1. Parcourez l'Explorateur de fichiers et localisez le dossier que vous voulez effacer. Faites un clic droit sur le fichier et sélectionnez Effacer.
Étape 2. Confirmez que le fichier a été supprimé. Le fichier a été supprimé du serveur.
Méthode 3 : Réparer l'erreur Rmdir : Erreur de Répertoire Non Vide sous Linux en vérifiant le système de fichiers
Les erreurs du système de fichiers sont une origine fréquente de suppression de fichiers et d'autres soucis. Par conséquent, l'outil FSCK (vérification de cohérence du système de fichiers) peut être bénéfique. Les mesures à prendre sont décrites ci-après :
Étape 1. Indiquez le système de fichiers sur lequel vous désirez exécuter fsck en utilisant cette commande.
df -h
Étape 2 Prenons l'exemple de /dev/sda4. Pour le retirer, utilisez la commande suivante. Vous devrez employer un CD en direct pour le désassembler si c'est un système de fichiers principal.
sudo umount /dev/sda4
Étape 3. Exécutez ensuite la commande suivante. Observez les indications affichées sur l'écran afin de vérifier les opérations de restauration.
sudo fsck /dev/sda4
Étape 4. Après la réparation, exécutez cette commande pour remonter le périphérique et vérifier si le problème a été résolu.
sudo mount /dev/sda4
Méthode 4 : Effacer le répertoire non vide du serveur de fichiers.
Dans certaines situations, le dossier ne pouvait pas être effacé car il faisait partie d'un système de fichiers monté sur CIFS (Samba). Il n'a pas évoqué un fichier car il s'agissait d'un lien symbolique rompu. Vous ne pouvez pas le voir par CIFS, vous pouvez donc penser que le dossier est vide. Dans cette situation, il est impératif de supprimer immédiatement le fichier du serveur de fichiers.
Méthode 5 : Corriger l'erreur Rmdir : Répertoire Non Vide sous Linux en arrêtant l'application Node
Certains utilisateurs ont mentionné des incidents où le dossier était ouvert dans une application node.js ou où un serveur node consultait régulièrement les fichiers du dossier, ce qui résultait en la présence continue de petits fichiers de métadonnées dans le dossier. Dans cette situation, la clôture de l'application ou du serveur qui accède au répertoire résoudra le souci.
Etape 1. Une application Node.js peut être fermée de différentes manières. Si l'application tourne dans une console, vous pouvez la fermer en pressant CTRL + C. Cependant, pour arrêter une application Node.js de manière programmée, utilisez la fonction exit()
du module process
.
Le module process est une composante intégrée qui renferme des données concernant le déroulement du processus Node.js en cours d'exécution. Il vous permet également de gérer le processus Node.js en cours depuis l'application.
process.exit([code]);
Etape 2. La méthode process. exit()
demande à Node.js de mettre fin au processus immédiatement. Les rappels en suspens, les demandes réseau en cours, les requêtes de base de données en cours ou l'accès au système de fichiers seront interrompus de manière abrupte.
Vous pouvez aussi passer une valeur entière à process.exit()
afin d'envoyer un code de sortie au système d'exploitation :
process.exit(5)
Étapes 3. Le numéro de sortie est fixé à 0
, ce qui indique une réussite par défaut. Le code de sortie 5
correspond à une "erreur fatale", indiquant que Node.js a rencontré une erreur irréparable. Chaque code de sortie possède une signification distinctive que vous pouvez employer dans votre application pour notifier le système d'exploitation du motif pour lequel votre application a été arrêtée.
Il est aussi possible d'utiliser la propriété process.exitCode
pour spécifier le code de sortie :
process.exitCode = 5
Etapes 4. Si vous désirez terminer le processus de manière raffinée, vous devez envoyer un signal SIGTERM
au processus, puis utiliser le gestionnaire d'événements du processus pour surveiller cet événement.
Voici un modèle de serveur HTTP Node.js qui écoute l'événement SIGTERM pour arrêter gracieusement le serveur :
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello world!')
})
const server = app.listen(3500, () => console.log(`Server started!`))
process.on('SIGTERM', () => {
server.close(() => console.log(`Server closed!`))
})
Pour adresser un signal SIGTERM au processus Node.js en cours, utilisez la fonction process.kill()
.
process.kill(process.pid, "SIGTERM");
Que faire si vous avez supprimé par erreur un répertoire non vide sous Linux ?
La suppression involontaire d'un dossier plein sous Linux peut être une expérience frustrante et laborieuse. Heureusement, il y a des logiciels qui permettent de récupérer les données supprimées sous Linux, notamment Wondershare Recoverit Linux Recovery.
Recoverit Récupération Linux est un outil puissant de récupération de données spécialement conçu pour les systèmes Linux. Les algorithmes sophistiqués et l'interface conviviale de Recoverit permettent de récupérer aisément les fichiers et dossiers effacés de Linux. Voici quelques-unes de ses principales caractéristiques :
Wondershare Recoverit - Votre logiciel de récupération Linux sûr et fiable
5 481 435 personnes l'ont téléchargé.
Récupère les fichiers égarés ou effacés, les images, les vidéos, les chansons, les e-mails et plus de 1000 formats de fichiers de manière efficace, sécurisée et totale.
Adapté à toutes les distributions Linux populaires, telles que Ubuntu, Linux Mint, Debian, Fedora, Solus, Opensuse, Manjaro, etc.
Fournit une assistance dans plus de 500 situations de perte de données, comme la suppression accidentelle, le reformatage du disque, l'effondrement du système d'exploitation, la coupure de courant, l'invasion de virus, la disparition d'une section, et bien d'autres encore.
La conception ergonomique de type cliquer-déplacer vous permet de récupérer facilement les informations des disques durs Linux en quelques actions seulement.
Fonctionne par le biais d'une connexion à distance. Vous êtes en mesure de retrouver les données égarées même en cas de blocage de votre dispositif Linux.
Wondershare Recoverit facilite la restauration de données sur Linux. En trois étapes faciles, vous pouvez récupérer vos informations.
Etape 1. Sélectionnez "Récupération Linux"
Démarrez l'application Wondershare Recoverit sur votre dispositif Linux. Ensuite, sélectionnez les alternatives NAS et Linux dans la partie gauche de l'interface principale. Cliquez sur Récupération Linux pour continuer.
Etape 2. Connexion à votre ordinateur Linux
Une nouvelle fenêtre apparaît sur votre écran, tel que montré ci-dessous. Pour établir une liaison à distance, entrez les informations requises. Appuyez sur le bouton bleu Connecter dès que vous avez fini.
Recoverit exécutera une vérification automatique afin de détecter les informations égarées sur votre machine Linux pendant que vous patientez jusqu'à ce que la connexion soit établie.
Etape 3. Prévisualisation et récupération de fichiers
En fonction du volume de données numérisées, le processus de numérisation peut nécessiter un laps de temps spécifique, la barre de progression située en bas de l'écran indique l'avancement de la numérisation. La principale particularité de Recoverit est la capacité de suspendre l'exploration dès qu'un fichier à récupérer est repéré.
Recoverit vous permet de vérifier les fichiers une fois l'analyse terminée pour vous assurer qu'il s'agit bien de ceux que vous voulez récupérer. Pour préserver le répertoire effacé de votre machine Linux, optez pour Récupérer immédiatement.
Le programme informatique vous demandera où vous voulez stocker les fichiers récupérés sur votre dispositif. Cliquez sur Récupérer pour obtenir les informations rétablies.
Pour Windows Vista/7/8/10/11
Pour macOS X 10.10 - macOS 13
Si la lecture des consignes de récupération vous met mal à l'aise, voici un guide vidéo que vous pouvez visionner.
Pour Windows Vista/7/8/10/11
Pour macOS X 10.10 - macOS 13
Conclusion
Lorsque la commande "rmdir" est utilisée pour effacer des dossiers qui ne sont pas vides, l'erreur "remove Directory not empty" se produit. Cet article expose la raison pour laquelle l'erreur "supprimer le répertoire non vide" se produit et comment la résoudre. Différents exemples de suppression de dossiers non vides sont également présentés pour une meilleure compréhension. Et si vous avez effacé involontairement un dossier plein sous Linux, Recoverit Linux Recovery sera là pour vous aider. Téléchargez-le maintenant !