1 ledna, 2022

Jak přejmenovat více souborů najednou na Linuxu

Přejmenování více souborů na Linuxu zní jako jednoduchý úkol, ale může to být docela složité. Je možné hromadně přejmenovat soubory pomocí příkazu mv a trochu skriptování Bash nebo použít nástroje mmv a rename – které nejsou standardně nainstalovány. V této příručce si ukážeme různé příklady přejmenování více souborů najednou z příkazového řádku systému Linux.

příklady v této příručce slouží k přejmenování všech souborů ve vašem současném pracovním adresáři. Většina z těchto příkazů lze snadno vyladit pracovat rekurzivně. Některé příklady také přejmenují adresáře.

přejmenujte více souborů pomocí mv

příkaz mv je výchozí součástí Linuxu a lze jej použít k přejmenování více souborů, ale k provedení práce je zapotřebí trochu skriptování. Některé příklady se také spoléhají na jiné výchozí nástroje pro Linux, jako je ls, find, xargs, atd.

Příklad 1. Změňte všechny názvy souborů na malá písmena.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done

příklad 2. Změňte všechny názvy souborů na velká písmena.

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done

příklad 3. Změňte všechny přípony souborů z .jpeg na .jpg.

$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

příklad 4. Odeberte příponu souboru .bak ze všech souborů.

$ for f in `ls *.bak`; do mv $f ${f%.*}; done

příklad 5. Přidejte do všech souborů příponu souboru .bak.

$ for f in `ls`; do mv $f $f.bak; done

příklad 6. Použijte xargs k připojení „_backup“ ke každému souboru.

$ ls * | xargs -I{} mv {} {}_backup

příklad 7. Použijte příkazy find, sed a mv pro změnu všech souborů na malá písmena.

$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T  \L/p'|sh

příklad 8. Pomocí příkazů find -exec a mv přidejte „_backup“ ke každému souboru končícímu v příponě .log.

$ find . -type f -name "*.log" -exec mv {} {}_backup \;

příklad 9. Podobně jako v předchozím příkladu, ale nahraďte find ‚s -exec volbou xargs a připojte „_backup“ ke každému souboru končícímu v .log.

$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup

příklad 10. Nahraďte vzor v každém souboru pomocí mv a sed. To nahradí “ IMG “ s „dovolená“ v každém souboru .jpg.

$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done

příklad 11. Přidejte aktuální časové razítko ke všem souborům končícím na .log. Tím by se změnil soubor jako access.log na access_20210418040151.log.

$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done

přejmenovat více souborů s přejmenovat

přejmenovat nástroj dělá naše hromadné přejmenování úkoly o něco jednodušší, ale nástroj není vždy nainstalován ve výchozím nastavení. Pomocí příslušného příkazu níže jej nainstalujte do Správce balíčků systému.

Ubuntu, Debian a Linux Mint:

$ sudo apt install rename

Fedora, AlmaLinux, CentOS a RHEL:

$ sudo dnf install prename

Arch Linux a Manjaro:

$ sudo pacman -S perl-rename
použijte volbu -n v příkazech rename, pokud chcete zobrazit náhled změn před jejich provedením.

Příklad 1. Změňte všechny názvy souborů na malá písmena.

$ rename 'y/A-Z/a-z/' *

příklad 2. Změňte všechny názvy souborů na velká písmena.

$ rename 'y/a-z/A-Z/' *

příklad 3. Odstraňte příponu .bak ze všech souborů.

$ rename 's/\.bak$//' *.bak

příklad 4. Změňte příponu všech souborů .jpeg na .jpg.

$ rename 's/\.jpeg/\.jpg/' *.jpeg

příklad 5. Změňte příponu velkých písmen .JPG na malá .jpg pro všechny soubory.

$ rename 's/\.JPG/\.jpg/' *.JPG

příklad 6. Odstraňte prázdná místa ze všech názvů souborů.

$ rename "s/ *//g" *

příklad 7. Nahradit prázdná místa podtržítky pro všechny názvy souborů.

$ rename 's/\s+/_/g' *

příklad 8. Velká písmena první písmeno všech názvů souborů.

$ rename 's/\b(\w)/\U/g' *

příklad 9. Nahraďte vzor v každém názvu souboru. Tento příkaz nahradí “ IMG “ za „dovolenou“ v každém souboru .jpg.

$ rename 's/IMG/Vacation/' *.jpg

příklad 10. Odstraňte část názvu souboru. Tento příkaz odstraní „IMG_“ z každého souboru .jpg.

$ rename 's/IMG_//' *.jpg

příklad 11. Připojte příponu .bak ke všem souborům.

$ rename 's/(.*)/.bak/' *

přejmenujte více souborů pomocí mmv

nástroj mmv vyniká přejmenováním souborů na základě vzorů, jako je odstranění nebo přidání řetězců ke všem souborům nebo přeskupení částí názvů souborů. Ve výchozím nastavení se obvykle nenainstaluje,ale pomocí příslušného příkazu níže můžete nainstalovat mmv pomocí správce balíčků systému.

Ubuntu, Debian a Linux Mint:

$ sudo apt install mmv

Fedora, AlmaLinux, CentOS a RHEL:

$ sudo dnf install mmv

Arch Linux a Manjaro (instalace z AUR):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
použijte volbu -n v příkazech mmv, pokud chcete zobrazit náhled změn před jejich provedením.

Příklad 1. Změňte příponu všech souborů .jpeg na .jpg.

$ mmv '*.jpeg' '#1.jpg'

příklad 2. Změňte všechny názvy souborů na malá písmena.

$ mmv '*' '#l1'

příklad 3. Změňte všechny názvy souborů na velká písmena.

$ mmv '*' '#u1'

příklad 4. Uspořádání částí názvu souboru. Tento příkaz změní hudební soubory se vzorem Song-Artist.mp3 na Artist-Song.mp3.

$ mmv '*-*.mp3' '#2-#1.mp3'

příklad 5. Nahraďte první výskyt “ IMG “ za „dovolenou“ ve všech názvech souborů.

$ mmv '*IMG*' '#1Vacation#2'

příklad 6. Přidejte předponu ke každému názvu souboru. Tento příkaz předepíše „backup_“ ke každému souboru .log.

$ mmv '*.log' 'backup_#1.log'

příklad 7. Přidejte příponu ke každému názvu souboru. Tento příkaz připojí „_backup“ ke každému souboru .log.

$ mmv '*.log' '#1.log_backup'

příklad 8. Odstraňte předponu „IMG_“ ze všech souborů .jpg.

$ mmv 'IMG_*.jpg' '#1'

příklad 9. Odstraňte příponu „_old“ ze všech souborů.

$ mmv '*_old' '#1'

Hromadné přejmenování souborů pomocí GUI

pokud příkazový řádek není opravdu vaše věc, je možné přejmenovat více souborů najednou pomocí GUI. Jedním z nejlepších nástrojů pro tuto práci je hromadné přejmenování aplikace, která je dodávána s Thunar.

Thunar je výchozí prohlížeč souborů pro Xfce, ale můžete jej nainstalovat bez ohledu na to, jaké prostředí plochy používáte. Pokud již používáte Xfce nebo Thunar, pak Hromadné přejmenování je již součástí vašeho systému. V opačném případě použijte příslušný příkaz níže a nainstalujte jej do Správce balíčků systému.

Ubuntu, Debian a Linux Mint:

$ sudo apt install thunar

Fedora, AlmaLinux, CentOS a RHEL:

$ sudo dnf install thunar

Arch Linux a Manjaro:

$ sudo pacman -S thunar

Krok 1. Po instalaci Thunaru vyhledejte a otevřete nástroj Hromadné přejmenování.

 otevření nástroje Hromadné přejmenování

Krok 2. Kliknutím na znaménko plus přidáte soubory, které chcete přejmenovat.

přidání seznamu souborů do hromadné přejmenování aplikace

Krok 3. Vyberte ze seznamu možností, co chcete se soubory dělat. Můžete je všechny změnit na velká nebo malá písmena, přidat datum a čas, vložit text na určitou pozici, přidat automatické číslování, nahradit znaky nebo hledat a nahradit určité vzory v názvech souborů, mimo jiné. V následujícím příkladu jsme ke všem našim souborům připojili příponu souboru .txt.

nástroj hromadného přejmenování zobrazující staré názvy a nové názvy souborů

Krok 4. Pokud jste spokojeni se změnami náhledu názvu ve sloupci „nový název“, klikněte na“ Přejmenovat soubory “ a proveďte hromadné přejmenování.

 dokončení úlohy hromadného přejmenování

Přejmenování více souborů na WSL

pokud používáte subsystém Windows pro Linux, některé příkazy výše nebudou fungovat, zejména ty, které zahrnují změnu souborů na malá nebo velká písmena. Windows je malá a velká písmena, proto považuje File.txt, file.txt a FILE.txt za stejný soubor.

jednoduše se zobrazí chyba, že soubor již existuje, pokud se pokusíte přejmenovat FILE.txt na file.txt. Chcete-li se tomuto problému vyhnout, použijte jeden z následujících příkladů.

Příklad 1. Změňte příponu velkých písmen .JPG na malá .jpg pro všechny soubory (pomocí výchozích nástrojů).

$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done

příklad 2. Změňte příponu velkých písmen .JPG na malá .jpg pro všechny soubory (pomocí nástroje přejmenovat).

$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux

příklad 3. Změňte příponu velkých písmen .JPG na malá .jpg pro všechny soubory (pomocí nástroje mmv).

$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'

příklad 4. Změňte všechny názvy souborů na malá písmena (pomocí výchozích nástrojů).

$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done

příklad 5. Změňte všechny názvy souborů na malá písmena (pomocí nástroje mmv).

$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'

závěr

je možné použít výchozí nástroje Bash pro všechny vaše hromadné přejmenování na Linuxu, ale nástroje přejmenování a mmv to mnohem usnadňují. Můžeme také použít hromadné přejmenování aplikace Thunar, když dáváme přednost použití GUI přes příkazový řádek. Příklady v této příručce pokrývají širokou škálu scénářů přejmenování a lze je snadno přizpůsobit dalším potřebám.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.