Script rm bash
Maurizio Paolini
paolini a dmf.bs.unicatt.it
Mar 5 Feb 2002 14:31:01 UTC
> Se devo rimuovere un gruppo di file, scelti a seconda di un mio
> criterio, grandezza, tipo file o altro, c'รจ un comando specifico di
> "rm" o devo farmi uno script?
rm accetta come parametri solo un elenco di files (o di directory nel caso
si usi l'opzione "-r".
In genere poi ci si appoggia all'espansione fatta dalla shell (una qualunque
delle solite: bash, tcsh, sh, csh,...) che trasforma ad esempio la stringa
"[Pp]ippo*" nell'elenco dei files che iniziano con "Pippo" o "pippo"
(tanto per fare un esempio), e passa il risultato a "rm".
E' chiaro che in questo modo e' possibile solo effettuare delle selezioni
in base al nome. Per cose piu' complesse e' inevitabile il ricorso ad
uno script (o a una serie di comandi interattivi). Ecco un esempio usando
"bash":
list=`ls` [mi procuro l'elenco dei files, esclusi quelli nascosti]
for file in $list
do
size=`ls -ld $file | tr -s " " | cut -f5 -d" "`
if [ "$size" -ge "1000" ]
then
echo "sto' cancellando \"$file\", ormai non ci puoi fare piu' niente!"
rm $file
fi
done
Naturalmente non ti azzardare a mettere veramente il comando "rm" al primo
tentativo! Meglio stare "extra" attenti. Io di solito metto "echo rm $file"
al posto di "rm $file" nel primo tentativo.
mp
Maggiori informazioni sulla lista
Lug
|