Pol Hallen <butterfly@fuckaround.org> writes: >> for i in *.avi >> do >> mv $i ${i%.*.*}.avi; >> done > Funziona :-) ma: > ... se lo state facendo a scopo didattico, continuate pure ed ignoratemi, anzi, leggerò volentieri (si impara sempre qualcosa di nuovo sullo scripting). se invece state cercando un modo affidabile per rinominare i file, consiglio vivamente, come altri hanno fatto, di usare rename. primo, perché se c'era da ottimizzare l'hanno probabilmente già fatto loro, ma soprattutto perché gli script che state proponendo hanno tutti un piccolo bug (o comportamento intenzionale, fate voi) che rename non ha: se ad esempio voglio rinominare i file pippo*.* a pluto*.* con un simile ciclo for, eventuali file pluto*.* già presenti verrebbero serenamente piallati dai vostri script. se uno di questi pluto*.* fosse non scrivibile, il vostro script molto probabilmente fallirebbe, e non rinominerebbe gli altri pippo*.*, così vi trovereste con alcuni file persi (senza saper bene quale), alcuni file rinominati e altri no. rename si prende già cura di questi casi, permette di testare senza rinominare, per vedere se si è scritta bene la regola, e di scegliere se sovrascrivere o no.
Attachment:
pgpylLqVdJ8_f.pgp
Description: PGP signature