Debianizzati.Org | Forum | Blog | Guide | IRC
 
 
Forum Italiano Debian - Debianizzati.Org
Ottobre 07, 2008, 05:35:03 *
Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?

Login con username, password e lunghezza della sessione
News:
 
   Home   Help Ricerca Calendario Login Registrati  
Pagine: [1]   Vai Giù
  Stampa  
Autore Topic: [risolto]: Bash: script di cancellazione selettiva (l'analisi è dubbia, la codifica di più)  (Letto 442 volte)
0 Utenti e 1 Visitatore stanno guardando questo topic.
dariodeb
Full Member
***

Karma: +0/-0
Offline Offline

Posts: 118



Guarda Profilo
« il: Maggio 23, 2008, 09:56:57 »

Ciao
vorrei qualche consiglio su come muovermi per uno script Bash che non dovrebbe essere ne lungo e neppure complesso.
Però vorrei che lavorasse su molti file...
Deve cercare file di una data estensione e con un tempo di ultimo accesso superiore a tot giorni in una directory fissata, al più ci vorrebbe una ricerca ricorsiva ma non è importante, specie se diventa una elaborazione pesante.

Io ho pensato di usare find, ma una sintassi ingenua come
Codice:
find qualcosa/*.gif -atime +30 -delete
su 104 nomi di file mi segnala che il numero degli argomenti è eccessivo.
Immagino ci sia differenza fra "cerca i file con un nome così e dopo che li hai trovati cancellali" e "cerca i file con un nome così cancellando quando ne trovi qualcuno". Ovvero l'espressione -delete è molto diversa da -exec rm, no? Se cio è corretto, su grandi elenchi un processo figlio rm potrebbe essere determinante per la riuscita.
Siccome pensavo anche che per lavorare su un numero di file dell'ordine di 106 l'unica potrebbe essere creare un txt di appoggio, sono un po' indeciso. Non posso fare molte prove su queste "distanze" e non vorrei imparare esclusivamente da dei tentativi rozzi. Non saprei ancora come far cancellare da un elenco su file.
Pensavo anche che, poiché i file hanno nomi casuali, avrei potuto abbattere la lunghezza dell'elenco di qualche x100 con dei cicli annidati, del tipo:
Codice:
for indice in [elenco caratteri]
Però immagino che ci sia anche un modo per non dovere elencare tassonomicamente l'escursione dell'indice. Ne avete idea?
Cmq a prescindere dalla sintassi conveniente, credo che di fondo sia necessario scrivere man mano un elenco parziale dei risultati della ricerca, poi cancellare ecc..

Spero che abbiate qualche suggerimento. Indicativamente come si possono cancellare dei file il cui percorso e scritto in un file?
"lo si legge per righe, si testa se la riga è un percorso e poi si cancella il file con quel percorso" ehm ... rolleyes


ps. almeno per ora dei soft link non me frega grin
« Ultima modifica: Maggio 24, 2008, 08:52:09 da dariodeb » Loggato

"Per non divagare e rimanere nel mondo dove viviamo ... mettiamoci in uno spazio di Hausdorff quadri-dimensionale semplicemente connesso"
"Dammi un po' di zucchero, baby."
http://it.wikiquote.org/wiki/L'armata_delle_tenebre
Finn
Global Moderator
Hero Member
*****

Karma: +27/-1
Offline Offline

Posts: 1076


207002659
Guarda Profilo
« Risposta #1 il: Maggio 24, 2008, 10:37:06 »

qualcosa tipo:

Codice:
find qualcosa/ -iname *.gif -atime +30 -delete
?

Come parametro di -iname puoi mettere un'espressione regolare, basta stare attenti al quoting.

My 0.02€

Loggato
dariodeb
Full Member
***

Karma: +0/-0
Offline Offline

Posts: 118



Guarda Profilo
« Risposta #2 il: Maggio 24, 2008, 04:54:52 »

qualcosa tipo:

Codice:
find qualcosa/ -iname *.gif -atime +30 -delete
?

Come parametro di -iname puoi mettere un'espressione regolare, basta stare attenti al quoting.

My 0.02€



Se intendi anche dire che specificando la ricerca tramite -iname, piuttosto che basarsi su percorso e wildcard, sia fondamentale per lavorare su grandi quantità di file ... allora il tuo consiglio vale più di 2centesimi  smiley
Vedrò anche se non è meglio -exec rm {qualcosa}
Grazie Finn
Loggato

"Per non divagare e rimanere nel mondo dove viviamo ... mettiamoci in uno spazio di Hausdorff quadri-dimensionale semplicemente connesso"
"Dammi un po' di zucchero, baby."
http://it.wikiquote.org/wiki/L'armata_delle_tenebre
dariodeb
Full Member
***

Karma: +0/-0
Offline Offline

Posts: 118



Guarda Profilo
« Risposta #3 il: Maggio 24, 2008, 08:50:52 »

Ho aggiunto [Risolto] perché ho visto che il semplice comando:
Codice:
find -atime +30 -delete
nella directory di test ha funzionato.
In questo modo credo che non debba espandere un elenco. Per lo meno ho constatato anche che ha scovato e cancellato 100.000 file senza fare una piega. Diversamente da find *.gif -atime 30 -delete che ho provato all'inizio.
Direi che va bene.

@Finn
alle espressioni regolari non ho proprio badato perché non credevo potesse essere utile per nomi definiti da stringhe di numeri a caso. Mi premurerò di impararne presto qualcosa. Di certo il test -iname che suggerisci migliora le cose.

Grazie  smiley
« Ultima modifica: Maggio 24, 2008, 09:22:45 da dariodeb » Loggato

"Per non divagare e rimanere nel mondo dove viviamo ... mettiamoci in uno spazio di Hausdorff quadri-dimensionale semplicemente connesso"
"Dammi un po' di zucchero, baby."
http://it.wikiquote.org/wiki/L'armata_delle_tenebre
Finn
Global Moderator
Hero Member
*****

Karma: +27/-1
Offline Offline

Posts: 1076


207002659
Guarda Profilo
« Risposta #4 il: Maggio 25, 2008, 09:50:43 »

Non conoscendo il contenuto della directory ho pensato volessi applicare il comando solo ai .gif
In generale, comunque è meglio far trovare a find i file su cui operare.. una buona espressione regolare (anche solo .*\.gif) aiuta molto.
Loggato
Pagine: [1]   Vai Su
  Stampa  
 
Salta a:  

Altri Topic Correlati
Oggetto Iniziato da Risposte Visto Ultimo Post
[BASH] script connesione help! Scripting AcidRicky 6 888 Ultimo Post Novembre 25, 2005, 05:38:40
da AcidRicky
[BASH] Script per spegnere in automatico il computer. Scripting « 1 2 » perseus 15 2737 Ultimo Post Aprile 11, 2006, 04:36:02
da The_Noise
[BASH] Script per l\'accesso locale Scripting balubeto 5 730 Ultimo Post Agosto 22, 2006, 11:10:25
da metaldaze
[risolto] script backup rsync - bash Generale Nokao 5 466 Ultimo Post Febbraio 06, 2007, 07:04:35
da Nokao
[Script Bash] per runnare file C Scripting cs_cruzeiro 4 551 Ultimo Post Ottobre 01, 2007, 11:25:16
da cs_cruzeiro
Powered by MySQL Powered by PHP Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!
Pagina creata in 0.474 secondi con 21 queries.