Salve ragazzi,
mi dite, por favor, che comando devo usare per cancellare tutti i file con data 2002 e 2003 presenti in una directory?
grazie,
sbn
Salve ragazzi,
mi dite, por favor, che comando devo usare per cancellare tutti i file con data 2002 e 2003 presenti in una directory?
grazie,
sbn
Dipende molto dall'output di ls -l non è che potresti incollarci una copia di esso eseguito all'interno di una directory che contenga file del 2002 o del 2003?
il problema è proprio estrarre tutti i files del 2002 e 2003 xè sono troppi per scriverli tutti a mano (sull'ordine delle centinaia x intenderci)... quindi copiarli usando cp (lista files) o cancellarli con rm (lista files) non fa differenza, se non ho capito male...
devo fare un file che contiene uno script?
sono, ancora x ora, ignorante x quando riguarda la programmazione pero' si potrebbe fare 1 cosa del genere
cancella.sh
codice:#!/bin/bash ls -l | grep $1 > file_da_cancellare # ciclo che non so fare for i in 'file_da_cancellare' exec rm -rf {} \; rm file_da_cancellare
gli dai i permessi di esecuzione, e gli passi come argomento la data dei file che vuoi cancellare
lo so che ho scritto 1 gran cavolata ma penso che il ragionamento sia quello
Sono costretto a quotarmi... Se mi fornisci l'output di una riga di ls -l di un file del 2002/2003 posso provare a fare lo script, se no cicciaOriginariamente inviato da Ilmalcom
Dipende molto dall'output di ls -l non è che potresti incollarci una copia di esso eseguito all'interno di una directory che contenga file del 2002 o del 2003?
sopadj, credo che tutti apprezzino lo sforzo, ma, senza offesa, forse è bene che studi un altro po' di bash scripting prima
Originariamente inviato da Ilmalcom
Sono costretto a quotarmi... Se mi fornisci l'output di una riga di ls -l di un file del 2002/2003 posso provare a fare lo script, se no ciccia
sopadj, credo che tutti apprezzino lo sforzo, ma, senza offesa, forse è bene che studi un altro po' di bash scripting prima
cmq io dicevo il ragionamento....
Al momento mi viene in mente una soluzione del genere, anche se non è ottimale. Spero sia quello che cercavi.
L'autore declina ogni responsabilità, bla bla bla...
Con questa istruzione tutti i files che non sono stati modificati negli ultimi 300 giorni vengono outputtati nel file lista_files.txt, così puoi verificare quali sono prima di cancellarli e non rischi di rimuovere qualche file vitale.codice:find /path/to/dir -mtime +300 > lista_files.txt
Dopodichè, per cancellare tutti i files a partire dalla lista, puoi utilizzare quest'istruzione...
codice:IFS="\n" for i in `cat lista_files.txt`; do rm -rf "$i"; done
eccoti una riga...
-rw-rw---- 1 zorro23 mail 4414 dic 5 2002 zorro23
GRAZIE 1000 X L'AIUTO!
scusa l'ignoranza in materia bash...ma questo comando:
IFS="\n" for i in `cat lista_files.txt`; do rm -rf "$i"; done
dà il seguente errore:
bash: syntax error near unexpected token `do'
....