J'ai besoin de supprimer tout le contenu d'un dossier dans CentOS mais pas le dossier lui-même.
Par exemple: J'ai un dossier nommé "MYFOLDER" qui contient les sous-dossiers FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... etc, et certains fichiers. Je dois supprimer tous ces dossiers et fichiers, mais pas le dossier conteneur MYFOLDER. J'ai besoin de ce répertoire pour diriger les résultats d'un processus précédent.
J'ai essayé avec la rm -rf
commande, mais cela supprime également le dossier du conteneur.
shopt -s dotglob
abord.rm -R /path/to/myfolder/*
est la syntaxe correcte pour éviter les demandes excessives d'approuver la suppression de chaque fichier et sous-dossier. Notez le capitalR
.Vous pouvez utiliser:
Cela supprime également les fichiers et dossiers cachés. Si vous avez trop de fichiers dans le répertoire MYFOLDER, vous devez exécuter à la place:
la source
meta/
répertoire, donc je voulais essayer l'alternative xargs, mais je reçois ces messages d'erreur:ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
bash
Shell. Le shell doit prendre en charge "Brace Expansion" et "Regular Expressions" pour les modèles de fichiers.À mon avis, la façon la plus simple est de supprimer le répertoire entier, y compris lui-même, puis de recréer le dossier. Il y a des situations où ce n'est pas une bonne solution (comme des scripts sans assistance ou des pipelines plus complexes), mais vous n'avez pas spécifié pourquoi vous ne vouliez pas supprimer le dossier.
Oops. Vous l'avez précisé (j'ai relu votre message). Eh bien, la suppression et la recréation peuvent fonctionner. Surtout si vous enchaînez des commandes, comme
Ou
la source
Que diriez-vous
Cela supprime également les fichiers cachés (ceux commençant par un point).
la source
Essayez
rm -r -f filename
son fonctionnement avec CentOS 6.xla source
Je recommande fortement cette alternative (elle supprime également les fichiers avec des espaces dans les noms):
la source