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ř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
-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
-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í.
Krok 2. Kliknutím na znaménko plus přidáte soubory, které chcete přejmenovat.
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
.
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í.
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.