Fórum Root.cz

Hlavní témata => Software => Téma založeno: rudaj 22. 08. 2017, 09:21:03

Název: Hromadné přejmenování přípon souborů
Přispěvatel: rudaj 22. 08. 2017, 09:21:03
Chci hromadne prejmenovat vsechny soubory v slozce z jedne pripony na jinou. Treba soubor1.tar.gz soubor2.tar.gz ... na soubor1.tgz soubor2.tgz ... Da se to udelat nejak jednoduse jenom standardnimi unix utilitami bez pouziti shell cyklu ? Nebo mi poradte nejkratsi zapis. Pozor, nazvy souboru muzou obsahovat i unicode znaky.
Název: Re:Hromadne prejmenovani pripon souboru
Přispěvatel: b00n 22. 08. 2017, 09:56:12
man rename (https://linux.die.net/man/1/rename)

Kód: [Vybrat]
rename .tar.gz .tgz *.tar.gz
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: rudaj 22. 08. 2017, 10:36:20
Zjistil jsem ze rename neni konzistentni na vsech unixech (a navic je to perl utilitka). V nekterych verzich je nutno dat:
Kód: [Vybrat]
rename -s .tar.gz .tgz *.tar.gz
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: JardaH 22. 08. 2017, 15:03:35
Bez cyklu, unicode zrejme nevadi, ale bile znaky v nazvu soboru budou delat bordel:

Kód: [Vybrat]
find . -maxdepth 1 -name \*.tar.gz | sed -re 's/(.*)\.tar\.gz/\0 \1.tgz/' | xargs -n 2 mv
S for-cyklem si myslim, ze je to nejkratsi a nejsnaze zapamatovatelne:

Kód: [Vybrat]
for i in *.tar.gz; do mv $i ${i//.tar.gz/.tgz}; done
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: Sten 22. 08. 2017, 15:53:11
A tohle je verze s for cyklem, ve které fungují i bílé znaky:

Kód: [Vybrat]
for i in *.tar.gz; do mv "$i" "${i//.tar.gz/.tgz}"; done
Stačí přidat uvozovky :D
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: kuk 22. 08. 2017, 18:53:36
thunar je na to vynikajúci, teda ak netrváš na cli
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: rudaj 22. 08. 2017, 21:12:01
thunar je na to vynikajúci, teda ak netrváš na cli

To neni standardni unix utilitka ale nejakej xfce manager co na pulce unixu nepujde, nebo bude vyzadovat 500MB zavislosti - xwindow pocinaje a emoji fontem konce  :)

ps: pod unixy myslim krome linuxu taky hpux, *bsd a macos. Dost by mi pomohlo kdybych mel vsude stejny script a nemusel to ifovat dle uname.
Název: Re:Hromadné přejmenování přípon souborů
Přispěvatel: Ondrej 22. 08. 2017, 21:34:58
MC to zvlasne...