Multi rename

Fórumok

Sziasztok!

Olyanra lenne szükségem hogy egy dir-ben minden fájlt át szeretnék nevezni lower-case-esre. Tehát pl. eZ_egy.File.tXt-böl ez_egy.file.txt-t szeretnék.
Eszetekbe jut erre valami egyszerü, 1 soros megoldás? (esetleg valamiféle util?)

pink

Hozzászólások

 for a in *; do b="$(echo "$a" | tr A-Z a-z)"; if [ -e "$b" -a "$a" != "$b" ]; then echo mar van "$b"; break; else echo mv "$a" "$b"; fi; done

Ez bash ala valo. Ha nem mondja, h mar van ..., meg jokat irkal akkor szedd ki az mv elol az echo-t.

mondjuk volt már ilyen topic, de ha csak *egy* könyvtárban akarod átnevezni a (nem rejtett (==ponttal kezdődő)) fileokat (és alkönyvtárakat), akkor:


ls -1 | while read name ; do lcase=`echo "$name" | tr [A-ZÁÉÍÓÖŐÚÜŰ] [a-záéíóöőúüű]`; if [ "$name" != "$lcase" ] ; then mv "$name" "$lcase"; fi; done

Köszönöm szépen mindkettötöknek a gyors segítséget.

pink