Pagina 1 di 1
eliminazione file
Inviato: lun 8 gen 2007, 0:17
da leo410me
Il mio problema è questo:
ho una directory con all'interno oltre a dei file altre directory che contengono a loro volta altri file ed altre directory etc etc...
All'interno di questo bell'alberello ho solo tre tipi di file, come posso eliminare in maniera ultra rapida due tipi di file per rimanere solo con quelli che mi interessano? È possibile? Grazie.
Inviato: lun 8 gen 2007, 4:57
da masalapianta
usa find con -exec (no, non ti dico come; man find)
Inviato: lun 8 gen 2007, 10:50
da leo410me
Mi sono messo alla lettura delle man econ il mio "fantastico" inglese ho partorito questo comando:
find /home/sly11/Desktop/nova -iwholename *.jpg -execdir -delete ;
il sistema mi ha risposto così:
find: The current directory is included in the PATH environment variable, which is insecure in combination with the -execdir action of find. Please remove the current directory from your $PATH (that is, remove "." or leading or trailing colons
mentre da root:
find: manca l'argomento di `-execdir'
????
Inviato: lun 8 gen 2007, 11:07
da Paoletta
1) non devi usare -execdir ma -exec...
2) se non quoti *.jpeg ci penserà la shell ad effettuare l'espansione dei caratteri; invece deve farlo find
Inviato: lun 8 gen 2007, 11:44
da sunreal
(Sono sempre io nel frattempo sono passato al portatile)
Paoletta ha scritto:1) non devi usare -execdir ma -exec...
Veramente dalle man pages credo di aver capito che execdir è più sicuro di exec e comunque avevo già provato senza risultato;
Paoletta ha scritto:2) se non quoti *.jpeg ci penserà la shell ad effettuare l'espansione dei caratteri; invece deve farlo find
Questa non l'ho proprio capita..... nel senso letterale della frase.
Inviato: lun 8 gen 2007, 12:22
da targzeta
Il comando è:
semplice ed efficace

.
Se hai anche un altro tipo oltre a jpg, supponiamo txt, il comando può essere:
Codice: Seleziona tutto
find /home/sly11/Desktop/nova \( -name "*jpg" -or -name "*txt" \) -delete
Te lo scrivo perchè non è sempre immediato capire il man di find
Quando Paoletta parla di quotare, in senso shell del termine, si intende far si che un parametro non vengo espanso dalla shell.
Nell'ultimo comando che ti ho scritto ho usato due metodi di quotatura della shell bash.
1) \( o \) -> così indico alla bash che le parentesi tonde non le deve interpretare
2) "*jpg" -> anche in questo caso voglio che la bash mandi a find proprio *jpg.
In generale si quotano tutti quei simboli che hanno significato anche per la shell ed il programma find, come hai letto nel man accetta l'asterisco come parametro. Un esempio vale mille parole. Vai in una directory che contiene file jpg ed esegui:
poi esegui
vedrai la differenza

.
Se vuoi sapere meglio che succede non hai che da chiedere, non lo scrivo solo per non essere troppo prolisso.
Spina
Inviato: lun 8 gen 2007, 15:26
da sunreal
Grazie mille spina..... vabbè anche Paoletta e masalapianta. Grazie