Comment supprimer tous les sous-répertoires? (script shell unix)
J'ai un répertoire appelé "cdrs-roaming". Chaque jour, je reçois un ou plusieurs fichiers .zip et je les décompresse avec ceci:
#!/bin/bash
for i in *.zip
do
j=${i//\.zip/} mkdir $j
cd $j unzip ../$i
cd -
done
Ensuite, j'ai par exemple: "example1.zip" et "example1"; "example2.zip" et "example2"
Je supprime tous les fichiers zip (dans ce cas: "example1.zip" et "example2.zip") avec ceci:
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
Je veux donc supprimer les répertoires (ou dossiers - je ne connais vraiment pas la différence) "exemple1" et "exemple2". J'ai essayé ceci:
#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Mais il supprime également "cdrs-roaming". J'ai également essayé d'utiliser:
find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Mais il renvoie: find: '/ cdrs-roaming /': aucun fichier ou répertoire de ce type
Une idée pour faire ça? Je n'ai besoin de supprimer que les répertoires dans "cdrs-roaming" mais je ne peux rien supprimer d'autre (mes fichiers .sh sont à l'intérieur)
Réponses
Puisque vous utilisez bash, que diriez-vous
rm -rf /dados/cdrs-roaming/*/
La dernière barre oblique garantit que bash étend uniquement le modèle aux répertoires.
Utiliser l' -mindepth 1
option:
find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;