Je peux utiliser ce qui suit pour supprimer le répertoire cible et récursivement tous ses sous-répertoires et contenus.
find '/target/directory/' -type d -name '*' -print0 | xargs -0 rm -rf
Cependant, je ne souhaite pas que le répertoire cible soit supprimé. Comment supprimer uniquement les fichiers de la cible, les sous-répertoires et leur contenu?
linux
macos
command-line
terminal
Michael Prescott
la source
la source
Trois autres options.
Utiliser
find
avec-mindepth 1
et-delete
:2. Utilisez
find
, mais avec des fichiers, pas des répertoires. Cela évite d'avoir àrm -rf
:3. Allez-y et supprimez le répertoire parent, mais recréez-le. Vous pouvez créer une fonction bash pour ce faire avec une seule commande; voici un simple doublure:
la source
Que diriez-vous
S'il peut y avoir des fichiers commençant par. dans le répertoire cible.
Cette seconde correspondra à tout commençant par un., Sauf. et .. Il échouera sur des noms comme .a, mais ce n'est pas très courant. Il pourrait être modifié si nécessaire pour couvrir tous les cas.
la source
la source