Bash - premenovanie viacerych suborov na raz

Sekcia: Programovanie 10.10.2008 | 18:43
mich   Návštevník
Ahojte,
ako sa da jednoducho z prikazoveho riadku premenovat subory napr: z a.txt b.txt c.txt... na a.info b.info. c.info A to este z ineho adresara.
Viem napriklad vymazat viac suborov s rovnakou priponou na raz a v aktualnom adresary: rm `ls | grep txt ` ak by mi ls vypisal absolutne cesty, tak to dokazem spravit aj pre subory v inom adresary. Ale neviem ako premenovat. Vyberiem si tymto sposobom, ze ktore subory chcem potom by trebalo dopisat cast nazvu suboru pred bodkou a doplnit ju o retazec ".info". Ale neviem ako na to.
Prosim, poradte
Dakujem
    • Re: Bash - premenovanie viacerych suborov na raz 10.10.2008 | 20:16
      Avatar Laco Debian Lenny  Používateľ
      for i in `find . | grep *.txt`; do mv $i ${i/.txt/.info}; done;
      tam kde si nastaveny ti prebehne aj vsetky podadresare a premenuje subory s priponou txt na info
      ak to chces iba na aktuanej urovni:
      for i in *.txt; do mv "$i" "${i/.txt}".info; done;
      toto su tzv. one-linery normalne ich pis do prikazoveho riadka ako hociktory iny prikaz
      • Re: Bash - premenovanie viacerych suborov na raz 10.10.2008 | 21:44
        still   Návštevník
        for i in `find . -name "*.txt"`; do mv $i ${i/.txt/.info}; done

        pripadne

        find . -name "*.txt" -exec rename .txt .info {} \;

        to mich: pre vymazanie suborov s priponou txt pouzivaj rm *.txt je to kratsie a naviac ti to nevymaze subory ako napr. "Nejaky nazvov s txt v mene.pripona" ;-)
        • Re: Bash - premenovanie viacerych suborov na raz 11.10.2008 | 01:58
          Mich   Návštevník
          Dakujem za rady, a to s tym rm znie rozumne ;-)
          Dik