View Full Version : Una cortesia su script Bash Linux
IspiCiosa
07-06-2007, 18:50
ragazzi ho il seguente comando:
rm -rf $(find -ctime +20 -name *.jpg)
pero mi lascia le cartelle vuote come posso fare per cancellare anche quelle???
rm -rf $(find -ctime +20 -name *.jpg)
pero mi lascia le cartelle vuote come posso fare per cancellare anche quelle???Prova con questo:
rm -rf $(find -ctime +20 -name \*.jpg -o -type d -empty)
In pratica cerca tutti i file .jpg modificati più di 20 giorni fa oppure tutte le directory vuote.
IspiCiosa
08-06-2007, 12:39
cia grazie mille ma ce solo una cosa che non va bene...
non deve calncellare i file jpeg o le directory vuote
ma deve fare entrambi cioè prima cancella i file jpeg e poi cancella le directory vuote
non deve calncellare i file jpeg o le directory vuote
ma deve fare entrambi cioè prima cancella i file jpeg e poi cancella le directory vuoteUhm ... allora no, non credo che si possa fare con 1 solo comando find. Come puoi immaginare, le opzioni che passi a find sono dei "filtri", cioè dei test che lui deve fare per stabilire cosa prendere in considerazione o no. E questo viene fatto per ogni singolo elemento del file-system. find scansiona il file-system e dice: questo lo prendo o no? E basta.
Potresti fare 2 find, tra l'altro per come lo fai adesso, dal find ottieni una bella stringona di output con tutti i path da eliminare da passare a rm. Non è il massimo .... si può però dire a find di eseguire qualcosa:
find -ctime +20 -name \*.jpg -exec rm -f {} \;
find -type d -empty -exec rm -rf {} \;
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.