Come rimuovere tutte le sottodirectory? (script di shell unix)
Ho una directory chiamata "cdrs-roaming". Ogni giorno ricevo uno o più file .zip e li decomprimo con questo:
#!/bin/bash
for i in *.zip
do
j=${i//\.zip/} mkdir $j
cd $j unzip ../$i
cd -
done
Poi ho per esempio: "esempio1.zip" e "esempio1"; "esempio2.zip" e "esempio2"
Sto rimuovendo tutti i file zip (in questo caso: "example1.zip" e "example2.zip") con questo:
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
Quindi voglio rimuovere le directory (o cartelle - davvero non conosco la differenza) "esempio1" e "esempio2". Ho provato questo:
#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Ma rimuove anche "cdrs-roaming". Ho anche provato a usare:
find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Ma restituisce: find: '/ cdrs-roaming /': nessun file o directory di questo tipo
Qualche idea per farlo? Devo eliminare solo le directory all'interno di "cdrs-roaming" ma non posso rimuovere nient'altro al suo interno (i miei file .sh sono al suo interno)
Risposte
Dato che stai usando bash, che ne dici di
rm -rf /dados/cdrs-roaming/*/
La barra finale assicura che bash espanda il modello solo alle directory.
-mindepth 1
Opzione di utilizzo :
find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;