Newsgroup: it.comp.os.linux.iniziare
Titolo: cancellazione file

E' possibile (sicuramente si) cancellare una serie di file con una sola
operazione?
I file (stesso nome) sono contenuti in
/home/utente1/file.txt
/home/utente2/file.txt
...
e quindi /home è un percorso uguale per tutti.
Grazie

 operazione?
Qualcosa del tipo:
# for f in /home/*/file.txt; do rm $f; done
ma ATTENZIONE!!!
non l'ho testato
--
Claves do Amaral

 non l'ho testato
Mi pare che funzioni, era proprio quello che mi serviva!
Ciao e grazie.

Si potrebbe impostare una cancellazione quando un file supera una certa
'anzianità'?
In pratica, è possibile cancellare un file ogni tre mesi dalla sua data di
creazione?


con find
 
Puoi dirgli di cercare in tutte le sottodir di una dir,
i file che sono stati creati/utilizzati da piu` di tot giorni
e rimuoverli
Ad esempio, qualcosa del tipo:
find /home -iname '*.txt' -mtime 4 -exec rm {} 
dovrebbe eliminare tutti gli *.txt  non modificati
da piu` di 4 giorni
Controlla bene "man file" perche' non ricordo le opzioni
con precisione e non assumo responsabilita`.
Prima, provalo sostituendo "-exec rm {}" con -print
e poi con "-ok rm {}".  ;-)
ciao, Andrea

 'anzianità'?
for i in `find eccetera`; do
	rm $i
	echo "Deleted $i"
done
man find per sapere che opzioni mettere al posto di eccetera.
Ciao
  Andrea


usa tmpreaper (
http://www.linuxgazette.com/issue18/tmp.html
)
-- 
[+] sent by sgrung
 |
  `-"Software is like SEX... is better when is FREE!!"

Sto provando in vari modi...
L'azione da compiere è quella di cancellare un file creato da più di 4 gg e
mi pare di capire che devo usare find -atime  ....
Sto provando un pò di tutto ma senza troppo successo...
 for i in `find -iname '/home/utente/file.txt' -atime 4 -exec rm {}`; do
rm$i done
Perchè questa riga non va?

 Perchč questa riga non va?
A parte alcuni errori di sintassi, la struttura "for ... ;do rm
...;done"
 e "-exec rm{}\" fanno all'incirca la stessa cosa
Quindi:
 
find  /home/utente -iname 'file*.txt' -atime +4 -exec  rm -f '{}' ';'
oppure
for i in `find /home/utente -iname 'file*.txt' -atime +4`; do rm $i;
done
In atime/ctime/mtime 4 significa 4 giorni, +4 piu` di 4 giorni,
-4 meno di 4 giorni ;)
ciao, Andrea

 Perchè questa riga non va?
  Ti riporto solo la parte finale: -atime 4 -exec rm \{\} \;
  Se non sei certo, al posto di exec metti ok. info find per tutte le 
informazioni del caso.
        Saluti, Giovanni.
-- 
   |^^^^|
   |    |  Eat my shorts !             * Linux Powered *
   |()()| /                            - Kernel 2.4.17 -
                 -> gio.bcc(at)
tin.it
 <-

 rm$i done
A questo punto dovrebbe bastare semplicemente
find -iname '/home/utente/file.txt' -atime 4 -exec "rm {}"
Rispetto al tuo comando ho aggiunto gli apici "", forse era quello.
Oppure:
for i in `find -iname '/home/utente/file.txt' -atime 4`; do rm $i ; done
Ho messo li spazio tra rm e $i e il ; subito dopo.
Ciao
  Andrea

Ora faccio un pò di prove...
E' corretto quindi, utilizzare -atime4 per cancellare file creati da 4gg?

 E' corretto quindi, utilizzare -atime4 per cancellare file creati da 4gg?
esattamente da 4 giorni 
poi 
mtime sono quelli che hai modificato (creati o editati)
atime sono quelli a cui hai acceduto (creati, letti, utilizzati)
ctime quelli che hanno avuto un qualunque cambiamento di stato
se il file lo hai creato e poi lasciato al suo destino
le cose coincidono
ciao, andrea