přejmenování souborů v systémech Linux je obvykle řešeno příkazem mv
(přesunout). Syntaxe je pouze mv old.txt new.txt
. Jednoduché, ale co když máme více souborů, které je třeba přejmenovat najednou, dokonce i stovky? Výchozí nástroj mv nemůže zpracovat přejmenování více než jednoho souboru, pokud neuděláme trochu skriptování. Existují také další nástroje, které můžeme nainstalovat k vyřešení problému, například rename
a mmv
.
v této příručce vám ukážeme, jak používat příkaz mv
a nástroje rename
a mmv
k přejmenování více souborů v linuxovém distro. Projdeme několik příkladů, abyste pochopili syntaxi a jak používat každou metodu.
v tomto tutoriálu se dozvíte:
- jak přejmenovat více souborů najednou pomocí příkazu MV
- jak nainstalovat přejmenovat na hlavních distribucích Linuxu
- Jak nainstalovat mmv na hlavních distribucích Linuxu
- jak používat mmv, pomocí příkladů příkazů
- jak používat přejmenovat, pomocí příkladů příkazů
Kategorie | požadavky, konvence nebo Verze softwaru Použité |
---|---|
systém | libovolné Linuxové distro |
Software | MV, přejmenovat, mmv |
jiný | privilegovaný přístup k vašemu systému Linux jako root nebo pomocí příkazu sudo . |
konvence | # – vyžaduje, aby dané příkazy Linuxu byly prováděny s oprávněními root buď přímo jako uživatel root, nebo pomocí příkazu sudo $ – vyžaduje, aby dané příkazy Linuxu byly prováděny jako běžný neprivilegovaný uživatel |
Přejmenování více souborů najednou pomocí příkazu MV
Přejmenování více souborů pomocí příkazu mv je snazší, pokud znáte trochu skriptování Bash. Podívejte se na některé z níže uvedených příkladů a podívejte se na některá běžná použití této metody.
- následující příkaz přidá a .přípona souboru txt pro všechny soubory ve vašem současném pracovním adresáři.
$ for i in $( ls ); do mv $i $i.txt; done
- Chcete-li odstranit příponu souboru ze všech souborů, můžete použít tento příkaz.
$ for i in $( ls *.txt ); do mv $i ${i%.*}; done
- můžeme také změnit příponu každého souboru. Následující příkaz změní všechny soubory pomocí .log rozšíření do .txt.
$ for i in *.log; do mv -- "$i" "${i%.log}.txt"; done
- můžete také použít příkaz Najít spolu s volbou
-exec
nebo příkazem xargs k přejmenování více souborů najednou. Tento příkaz se připojí .bak do každého souboru, který začíná vzorem „soubor“.$ find . -type f -name 'file*' -print0 | xargs --null -I{} mv {} {}.bak
- tento příkaz používá možnost najít a
-exec
připojit „_backup“ ke všem souborům, které končí v .rozšíření txt.$ find . -name "*.txt" -exec mv {} {}_backup \;
- můžeme také použít xargs k tomu samému. Tento příkaz přijme standardní vstup z příkazu
ls
a poté pomocí xargs připojí „_backup“ ke všem souborům, které končí .rozšíření txt.$ ls *.txt | xargs -I{} mv {} {}_backup
- Chcete-li změnit všechny soubory pomocí .txt v tomto adresáři má pouze malá písmena, Tento příkaz provede práci.
$ for i in `ls *.txt`; do mv "$i" "`echo $i | tr '' ''`"; done
výhodou této metody je, že nepotřebujeme žádný další linuxový software-používáme pouze nativní nástroj mv a někdy spojený s ls, find nebo xargs. Jak jsme však viděli v těchto příkladech, může být poměrně složité udělat něco jednoduchého, jako je přejmenování několika souborů. Podívejte se na některé z dalších metod níže a podívejte se na některé pohodlnější možnosti, které vyžadují instalaci.
nainstalujte nástroj přejmenování
vaše linuxové distro již může mít ve výchozím nastavení nainstalováno rename
. V případě, že již není nainstalován, můžete jej pomocí příslušného příkazu níže nainstalovat pomocí správce balíčků systému.
instalace přejmenování na Ubuntu, Debian a Linux Mint:
$ sudo apt install rename
Chcete-li nainstalovat přejmenovat na CentOS, Fedora, AlmaLinux a Red Hat:
$ sudo dnf install prename
Chcete-li nainstalovat přejmenovat na Arch Linux a Manjaro:
$ sudo pacman -S perl-rename
přejmenovat příklady příkazu
příkaz rename
přijímá výraz perl k provedení skutečného přejmenování. Pokud jste již obeznámeni s touto syntaxí, přejmenování bude velmi snadné. Pokud ne, nebojte se, níže máme několik příkladů,které vám pomohou dostat se na kloub.
zde jsme sestavili některé z nejběžnějších scénářů, které byste museli přejmenovat více souborů najednou. Tyto příkazy předpokládají, že soubory, které chcete přejmenovat, jsou ve vašem současném pracovním adresáři. Vždy můžete zadat cestu k jiným adresářům, pokud si budete přát.
existuje několik možností, které můžete použít s rename
. Volba -n
vám ukáže, jaké změny přejmenování provede, aniž by skutečně provedlo změny. To vám pomůže vyhnout se nežádoucím změnám. Volba -v
(Podrobná) vytiskne názvy souborů, které byly úspěšně přejmenovány.
- tento příkaz přejmenuje velké soubory na malá písmena.
$ rename 'y/A-Z/a-z/' *
nebo, převést malá písmena na velká:
$ rename 'y/a-z/A-Z/' *
- Chcete-li změnit příponu svazku souborů, použijte následující syntaxi. Tento konkrétní příklad se převede .protokolovat soubory do .txt soubory.
$ rename 's/\.log$/\.txt/' *.log
- Chcete-li velké písmeno každého názvu souboru, použijte následující příkaz.
$ rename 's/\b(\w)/\U/g' *
- Chcete-li odstranit všechna prázdná místa z názvů souborů, spusťte tento příkaz.
$ rename "s/ *//g" *
nebo, nahradit mezery podtržítky:
$ rename 's/\s+/_/g' *
- Chcete-li odebrat příponu souboru z hromady souborů, použijte následující syntaxi. Tento příklad odstraní .Bakoš.
$ rename 's/\.bak$//' *.bak
nainstalujte nástroj mmv
pomocí příslušného příkazu níže můžete nainstalovat mmv prostřednictvím správce balíčků systému.
instalace mmv na Ubuntu, Debian a Linux Mint:
$ sudo apt install mmv
instalace mmv na CentOS, Fedoru, AlmaLinux a Red Hat:
$ sudo dnf install mmv
instalace mmv na Arch Linux a Manjaro:
$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
příklady příkazů mmv
nejatraktivnější vlastností mmv je jeho schopnost snadno přejmenovat mnoho souborů přijetím zástupných znaků v příkazu. To vám umožní snadno připojit nebo odstranit určité vzory z názvů souborů nebo dokonce uspořádat text v názvech. Podívejte se na některé z níže uvedených příkladů, kde se dozvíte syntaxi nástroje mmv, a podívejte se na některé z nejběžnějších příkazů, které s ním můžete spustit. Mějte na paměti, že k náhledu změn můžete použít volbu -n
s mmv.
- použijte tento příklad ke změně přípony souboru na spoustě souborů. Tento příkaz změní všechny soubory s příponou .htm to .html.
$ mmv '*.htm' '#1.html'
- tento příkaz nahradí první výskyt „foo“ za „bar“ ve všech názvech souborů.
$ mmv '*foo*' '#1bar#2'
- následující příkaz vám dává představu o tom, jak můžete použít mmv k uspořádání částí názvu souboru. Tento příklad vezme soubory jako
access.log-dbserver
arejected.log-webserver
a přejmenuje je naaccess-dbserver.log
arejected-webserver.log
. Aby to fungovalo, musíme mít konzistentní vzorec, jako je pomlčka a tečka v tomto případě.
$ mmv '*.log-*' '#1-#2.log'
- pomocí tohoto příkazu změňte všechny názvy souborů na malá písmena.
$ mmv '*' '#l1'
- naopak změňte názvy souborů na všechna velká písmena s tímto.
$ mmv '*' '#u1'
Závěrečné myšlenky
v této příručce jsme se naučili několik různých metod přejmenování více souborů současně na Linuxu. Viděli jsme také množství příkladů příkazového řádku, které mohou pokrýt mnoho různých scénářů nebo je lze snadno přizpůsobit podobným situacím. Hromadné přejmenování lze provést pomocí nativních nástrojů bash, jako jsou mv, ls, xargs a find, nebo můžeme nainstalovat nástroj mmv nebo přejmenovat, abychom náš život trochu usnadnili. Každá metoda má své silné a slabé stránky, takže použijte ten, který si myslíte, že bude pro vás nejvhodnější.