72 votes

Comment supprimer tous les fichiers et sous-répertoires d'un répertoire SANS supprimer le répertoire en bash ?

Existe-t-il une commande permettant de supprimer tous les fichiers et sous-répertoires d'un répertoire ? sans en supprimant le répertoire ?

Par exemple, si j'ai le répertoire dontDeleteMe avec des sous-répertoires 1 , 2 , 3 et chaque sous-répertoire contient quelques images, comment puis-je supprimer les sous-répertoires ? 1 , 2 et 3 et tous les fichiers qui s'y trouvent, sans supprimer le répertoire parent dontDeleteMe ?

0voto

Nick Mitchell Points 101
rm -rf ${PWD}/*

effacera le répertoire de travail actuel

0voto

mivk Points 4379

J'utiliserais find comme suggéré par réponse de guciek et ajouter -xdev pour s'assurer qu'il ne descend pas dans d'autres systèmes de fichiers :

find 'dontDeleteMe' -xdev -mindepth 1 -deletea

(J'ai ajouté des guillemets au cas où le chemin réel contiendrait des espaces)

Une alternative avec Bash et rm pourrait être

rm -rf 'dontDeleteMe'/{*,.[!.]*}

Cela permettrait également de supprimer les fichiers cachés, sans produire d'erreurs. Voir cette réponse pour les détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X