V tomto tutoriálu se naučíme, jak přejmenovat více souborů najednou v Linuxu pomocí různých nástrojů. Všechny zde uvedené příklady jsou testovány v Ubuntu, měly by však fungovat na všech operačních systémech Linux.
Úvod
Jak už možná víte, používáme mv
příkaz k přejmenování nebo přesunutí souborů a adresářů v operačních systémech Linux a Unix.
Ale mv
příkaz nebude podporovat dávkové přejmenování souborů najednou. Může přejmenovat pouze jeden soubor najednou. Co byste udělali, kdybyste chtěli přejmenovat více souborů najednou? Nebojte se!
Pro dávkové přejmenování souborů v Linuxu je k dispozici několik dalších nástrojů.
Přejmenujte více souborů najednou v Linuxu
Pro hromadné přejmenování hromady souborů může existovat mnoho příkazů a nástrojů. Při psaní tohoto článku jsem si vědom 8 různých způsobů, jak dávkově přejmenovat soubory. Pokud v budoucnu narazím na nějakou novou metodu, budu seznam průběžně aktualizovat.
Metoda 1 – Dávkové přejmenování souborů pomocí mmv
mmv nástroj se používá k hromadnému přesouvání, kopírování, přidávání a přejmenování souborů pomocí standardních zástupných znaků v operačních systémech Linux a Unix. Je k dispozici ve výchozích repozitářích systémů založených na Debianu.
Chcete-li nainstalovat mmv na Debian, Ubuntu, Linux Mint a Pop OS, spusťte následující příkaz:
$ sudo apt-get install mmv
Řekněme, že ve svém aktuálním adresáři máte následující soubory.
$ ls a1.txt a2.txt a3.txt
Nyní chcete přejmenovat všechny soubory, které začínají písmenem "a"
na "b"
. Samozřejmě to můžete udělat ručně během několika sekund.
Ale přemýšlejte, jestli máte stovky souborů a chcete je přejmenovat? Je to poměrně časově náročný proces. Zde je mmv příkaz přichází na pomoc.
Chcete-li přejmenovat všechny soubory začínající písmenem "a"
na "b"
, jednoduše spusťte:
$ mmv a\* b\#1
Pojďme zkontrolovat, zda byly soubory přejmenovány nebo ne.
$ ls b1.txt b2.txt b3.txt
Jak vidíte, všechny soubory začínají písmenem "a"
(tj. a1.txt
, a2.txt
, a3.txt
) jsou přejmenovány na b1.txt
, b2.txt
, b3.txt
.
Vysvětlení
Ve výše uvedeném příkladu je první parametr (a*
) je 'from'
vzor a druhý parametr je 'to'
vzor (b#1
).
Podle výše uvedeného příkladu bude mmv hledat všechny názvy souborů začínající písmenem 'a'
a přejmenujte odpovídající soubory podle druhého parametru, tj. 'to'
vzor.
Používáme zástupné znaky, například ‘*’
, ‘?’
a ‘[]‘
, aby odpovídal jednomu nebo více libovolným znakům. Mějte prosím na paměti, že zástupné znaky musíte escapovat, jinak budou rozbaleny shellem a mmv jim nebude rozumět.
‘#1′
v ‘to’
vzor je index zástupných znaků. Odpovídá prvnímu zástupnému znaku nalezenému v ‘from’
vzor. ‘#2′
v ‘to’
vzor by odpovídal druhému zástupnému znaku a tak dále.
V našem příkladu máme pouze jeden zástupný znak (hvězdičku), takže napíšeme #1
. A znak hash by měl být také escapován. Vzory můžete také uzavřít do uvozovek.
Můžete dokonce přejmenovat všechny soubory s určitou příponou na jinou příponu. Chcete-li například přejmenovat všechny soubory .txt
soubory do .doc
formátu souboru v aktuálním adresáři, jednoduše spusťte:
$ mmv \*.txt \#1.doc
Zde je další příklad. Řekněme, že máte následující soubory.
$ ls abcd1.txt abcd2.txt abcd3.txt
Chcete nahradit první výskyt abc
s xyz
ve všech souborech v aktuálním adresáři. Jak byste to udělali vy?
Jednoduché.
$ mmv '*abc*' '#1xyz#2'
Vezměte prosím na vědomí, že ve výše uvedeném příkladu jsem vzory uzavřel do jednoduchých uvozovek.
Pojďme zkontrolovat, zda je "abc" skutečně nahrazeno "xyz" nebo ne.
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
Vidět? Soubory abcd1.txt , abcd2.txt a abcd3.txt byly přejmenovány na xyzd1.txt , xyzd2.txt a xyzd3.txt .
Další pozoruhodnou vlastností příkazu mmv je, že můžete pouze tisknout výstup namísto přejmenování souborů pomocí -n
možnost jako níže.
$ mmv -n a\* b\#1 a1.txt -> b1.txt a2.txt -> b2.txt a3.txt -> b3.txt
Tímto způsobem můžete před přejmenováním souborů jednoduše ověřit, co by příkaz mmv skutečně udělal.
Další podrobnosti naleznete na manuálových stránkách.
$ man mmv
Metoda 2 – Hromadné přejmenování souborů pomocí nástroje pro přejmenování
Přejmenovat obslužný program přejmenuje dané soubory tak, že první výskyt výrazu v jejich názvu nahradí nahrazením.
Příkaz přejmenovat je předinstalován ve většině operačních systémů podobných Unixu. Pokud není ve výchozím nastavení k dispozici, spusťte následující příkaz a nainstalujte jej na systémy založené na Debianu:
$ sudo apt install rename
V aktuálním adresáři mám například následující soubory.
$ ls abcd1.txt abcd2.txt abcd3.txt
Nahradíme první výskyt abc
s xyz
kdekoli nalezen. Chcete-li to provést, spusťte:
$ rename 's/abc/xyz/' *
Nyní ověřte, zda byly změny provedeny pomocí ls
příkaz.
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
Někdy můžete místo přejmenování souborů pouze vytisknout výstup. Pokud ano, použijte -n
příznak pro zobrazení toho, která přejmenování by nastala bez jejich provedení:
$ rename -n 's/abc/xyz/' * rename(abcd1.txt, xyzd1.txt) rename(abcd2.txt, xyzd2.txt) rename(abcd3.txt, xyzd3.txt)
Jak můžete vidět, výše uvedený příkaz neprovedl žádné změny, místo toho pouze zobrazuje, která přejmenování nastanou.
Úlohu přejmenování můžete vynutit, i když by operace přepsala existující soubory pomocí -f
příznak jako níže.
$ rename -f 's/abc/xyz/' *
Pokud nechcete soubory přepisovat, můžete je jednoduše převést na velká nebo malá písmena (a naopak), abyste předešli chybám „již existuje“.
Chcete-li převést všechny názvy souborů na malá písmena, postupujte takto:
$ rename 'y/a-z/A-Z/' *
Pojďme zkontrolovat, zda byly změny provedeny.
$ ls ABCD1.TXT ABCD2.TXT ABCD3.TXT
Ano, písmena v názvech souborů byla změněna z malých na velká.
Podobně, chcete-li převést názvy souborů na malá písmena, spusťte:
$ rename 'y/A-Z/a-z/' *
Můžeme také odstranit všechny prázdné řádky v názvu souboru. Mám například následující soubor.
$ ls Clouds of Sunset.mp3
Chcete-li odstranit všechna prázdná místa ve výše uvedeném souboru, spusťte:
$ rename "s/ *//g" *
Nyní název souboru neobsahuje žádná prázdná místa.
$ ls CloudsofSunset.mp3
Nahraďte prázdná místa podtržítky:
$ rename 's/\s+/_/g' *
Možná budete chtít změnit příponu souboru, ale nepřejmenovat názvy souborů. Je to také možné. Následující příkaz by přejmenoval všechny *.txt
soubory do *.doc
.
$ rename 's/\.txt$/.doc/' *.txt
Ověřte změny pomocí ls příkaz:
$ ls abcd1.doc abcd2.doc abcd3.doc
Chcete-li odstranit příponu ve všech souborech odpovídajících .txt , spustit:
$ rename 's/\.txt$//' *.txt
Další podrobnosti naleznete na manuálových stránkách.
$ man rename
Metoda 3 – Přejmenujte soubory pomocí renameutils
Nástroj renameutils je sada programů, která je navržena pro rychlejší a jednodušší dávkové přejmenování souborů a adresářů.
Renameutils se skládá z následujících pěti programů:
- qmv (rychlý pohyb),
- qcp (rychlá kopie),
- imv (interaktivní přesun),
- icp (interaktivní kopie),
- deurlname (smazat adresu URL).
Nainstalujte renameutils v Linuxu
Renameutils je k dispozici ve výchozích úložištích většiny distribucí Linuxu. Chcete-li jej nainstalovat na systémy založené na Arch, povolte komunitní úložiště a spusťte:
$ sudo pacman -Syu renameutils
Na systémech založených na Debianu:
$ sudo apt install renameutils
Nyní se podívejme na několik příkladů.
1. qmv
Program qmv otevře názvy souborů v adresáři ve vašem výchozím textovém editoru a umožní vám je upravovat.
V adresáři s názvem 'ostechnix' mám následující tři soubory.
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt
Chcete-li přejmenovat názvy souborů v adresáři 'ostechnix', jednoduše proveďte:
$ qmv ostechnix/
Nyní změňte názvy souborů, jak chcete. Při úpravě názvů souborů uvidíte živý náhled.
Případně můžete CD do adresáře a jednoduše spustit 'qmv'
.
Jakmile otevřete soubory, uvidíte dva sloupce, jak je znázorněno na následujícím snímku obrazovky.
V levém sloupci se zobrazují názvy zdrojových souborů a v pravém sloupci se zobrazují názvy cílových souborů (výstupní názvy souborů, které získáte po úpravách).
Nyní přejmenujte všechny názvy výstupů na pravé straně, jak chcete.
Po přejmenování názvů souborů soubor uložte a ukončete.
Nakonec uvidíte následující výstup:
Plan is valid. abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt Regular rename abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt
Nyní zkontrolujte, zda byly změny skutečně provedeny pomocí 'ls'
příkaz:
$ ls ostechnix/ xyzd1.txt xyzd2.txt xyzd3.txt
Vidět? Všechny soubory jsou přejmenovány. Nejen soubory, renameutils také přejmenuje názvy adresářů.
Zde je rychlé video demo programu qmv:
Pokud nechcete upravovat názvy souborů ve formátu dvou sloupců, použijte následující příkaz k zobrazení pouze sloupce cílového souboru.
$ qmv -f do ostechnix/
Kde, '-f'
odkazuje na format
a 'do'
odkazuje na destination-only
.
Nyní uvidíte pouze cílový sloupec. To je sloupec, ve kterém provádíme změny.
Po dokončení uložte a zavřete soubor.
Další podrobnosti naleznete na manuálových stránkách.
$ man qmv
2. qcp
Program qcp funguje jako qmv, ale místo přejmenování soubory kopíruje. V tomto případě získáte dvě instance stejného souboru. To znamená, že zachová původní i duplicitní soubory.
$ qcp ostechnix/
Přejmenujte názvy souborů uvedené na pravé straně. Uložte a ukončete soubor. Nakonec ověřte provedené změny pomocí příkazu ls:
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt xyzd1.txt xyzd2.txt xyzd3.txt
Další podrobnosti naleznete na manuálových stránkách.
$ man qcp
3. imv
Program imv nám umožňuje interaktivně přejmenovávat názvy souborů. Je zřejmé, že to není pro hromadné přejmenování. Soubory můžete přejmenovat pouze jeden po druhém.
$ imv ostechnix/abcd1.txt
Upravte název souboru, jak chcete, a stisknutím klávesy ENTER jej přejmenujte.
Další podrobnosti naleznete na manuálových stránkách.
$ man imv
4. icp
Program icp je stejný jako imv
, ale soubory zkopíruje, místo aby je přesunul.
Příklad:
$ icp ostechnix/abcd1.txt
Další případy použití a příkazy naleznete na manuálových stránkách.
$ man icp
Nevím, proč vývojáři přidali tyto dva nástroje, zatímco my můžeme udělat totéž pomocí mv
a cp
příkaz.
5. deurlname
deurlname program odstraňuje znaky zakódované v URL (například %20
představující prostor) z názvů souborů. Některé programy, například w3m , mají tendenci uchovávat tyto znaky zakódované v uložených souborech.
Tento nástroj můžete použít k vyčištění názvů souborů stažených z internetu.
Podívejte se na následující soubor.
$ ls omg%20ponnu%20ily%20kannu.mp3
V názvu souboru jsou speciální znaky a čísla. Pokud to vyčistíte, stačí spustit:
$ deurlname omg%20ponnu%20ily%20kannu.mp3
Nyní se podívejte, jak se změnil název souboru.
$ ls omg ponnu ily kannu.mp3
Název souboru je čistý a čitelný.
Další podrobnosti naleznete v manuálových stránkách.
$ man deurlname
Podívejte se také na webové stránky projektu uvedené na konci této příručky.
Metoda 4 – Přejmenujte více souborů najednou pomocí vimv
Jak název napovídá, Vimv je nástroj příkazového řádku pro hromadné přejmenování souborů pomocí Vim editor. Editor můžete samozřejmě změnit změnou hodnoty $EDITOR
proměnná prostředí.
Chcete-li nainstalovat Vimv, git klonujte úložiště:
$ git clone https://github.com/thameera/vimv.git
Zkopírujte binární soubor vimv do vaší $PATH
, například /usr/local/bin/
.
$ sudo cp vimv/vimv /usr/local/bin/
Nakonec jej udělejte spustitelným:
$ sudo chmod +x /usr/local/bin/vimv
Nyní přejděte do adresáře a spusťte následující příkaz pro úpravu názvů souborů.
$ vimv
V editoru Vi uvidíte názvy souborů. Stiskněte i pro přepnutí do interaktivního režimu a úpravu názvů souborů stejným způsobem, jakým upravujete text v editoru Vi. Po dokončení stiskněte ESC
a zadejte :wq
uložit a ukončit.
Soubory v adresáři by nyní měly být přejmenovány. Zde je krátké video demo.
Další podrobnosti naleznete v úložišti projektu GitHub na konci této příručky.
Metoda 5 - Dávkové přejmenování souborů pomocí Emacs
Pokud máte systém s nainstalovaným editorem Emacs, můžete dávkové přejmenování snadno provést podle následujících kroků.
1. Otevřete svůj editor Emacs.
2. Stiskněte Alt+x
a zadejte následující a stiskněte ENTER pro přepnutí do wdired-mode
(zkratka pro "writable directory editor mode").
$ dired
3. Zadejte cestu k adresáři (např. /home/sk/ostechnix
), který obsahuje soubory k přejmenování a stiskněte ENTER
klíč.
4. Poté stiskněte Ctrl+x
a Ctrl+q
pro přepnutí do režimu čtení a zápisu.
5. Nyní přejmenujte soubory. Po dokončení stiskněte Ctrl+c
a Ctrl+c
(dvakrát) pro uložení změn. Chcete-li změny zrušit, stiskněte Ctrl+c
a Ctrl+k
.
Podívejte se na ukázkové video:
Vidět? Je velmi jednoduché přejmenovat více souborů najednou.
Metoda 6 – Hromadné přejmenování souborů pomocí správce souborů Thunar
Správce souborů Thunar má vestavěné hromadné přejmenování možnost ve výchozím nastavení.
Thunar je k dispozici ve výchozích úložištích většiny distribucí Linuxu.
Chcete-li jej nainstalovat na systémy založené na Arch, spusťte:
$ sudo pacman -S thunar
Na Fedoře, RHEL, CentOS, AlmaLinux, Rocky Linux:
$ sudo dnf install thunar
Nebo,
$ sudo yum install thunar
Na openSUSE:
$ sudo zypper install thunar
V systémech Debian, Ubuntu, Linux Mint:
$ sudo apt-get install thunar
Po instalaci můžete spustit nástroj pro hromadné přejmenování z nabídky nebo ze spouštěče aplikací. Chcete-li jej spustit z Terminálu, použijte následující příkaz:
$ thunar -B
Takto vypadá hromadné přejmenování.
Klikněte na znaménko plus a vyberte seznam souborů, které chcete přejmenovat. Hromadné přejmenování může přejmenovat název souborů, příponu souborů nebo jak název, tak příponu souborů.
Thunar aktuálně podporuje následující hromadné přejmenovávače:
- Vložte datum nebo čas
- Vložit nebo přepsat
- Číslování
- Odebrat znaky
- Vyhledat a nahradit
- Velká / malá písmena
Když ze seznamu vyberete jedno z těchto kritérií, uvidíte náhled změn v Novém názvu sloupec, jak je znázorněno na níže uvedeném snímku obrazovky.
Jakmile zvolíte kritéria, klikněte na Přejmenovat soubory možnost přejmenovat soubory.
Hromadný přejmenovávač můžete otevřít také z Thunar výběrem dvou nebo více souborů. Po výběru souborů stiskněte F2
nebo klikněte pravým tlačítkem a vyberte Rename
.
Doporučené čtení:
- [Bash Tips] Přejmenování souborů bez zadávání celého jména dvakrát v Linuxu
Metoda 7 – Přejmenujte seznam souborů pomocí KRename
KRename je dávkový přejmenovávač souborů, který dokáže přejmenovat seznam souborů na základě sady výrazů. Umožňuje přejmenovat velké množství souborů jednoduchým přidáním posloupnosti čísel nebo změnou velikosti písmen.
KRename je speciálně navržen a standardně nainstalován v distribucích KDE. Můžete jej také nainstalovat na jiné distribuce Linuxu.
Chcete-li například nainstalovat KRename na Fedoru, jednoduše spusťte:
$ sudo dnf install krename
Spusťte aplikaci KRename ze spouštěče aplikací nebo nabídky a přidejte všechny soubory, které chcete přejmenovat, do Soubory sekce.
V Cíl v sekci, ujistěte se, že jste vybrali možnost "Přejmenovat vstupní soubory"..
V zásuvných modulech si můžete vybrat libovolný plugin(y), který poskytuje různé značky při přejmenovávání souborů.
V poslední části sekce si můžete vybrat schéma přejmenování, které chcete použít. Ve spodní části uvidíte náhled podle zvoleného schématu. Jakmile budete s vybranými možnostmi v pořádku, klikněte na tlačítko Dokončit a přejmenujte soubory.
Přejmenované soubory budou uloženy na stejném místě.
KRename je funkčně bohatý nástroj pro přejmenování. Při přejmenovávání souborů má tolik možností. Většina možností je samovysvětlující.
Metoda 8 – Přejmenujte více souborů a složek pomocí Smart file renamer
Smart File Renamer je grafický program pro přejmenování více souborů najednou. Pomocí inteligentního přejmenování souborů můžete snadno a rychle přejmenovat soubory a adresáře najednou pomocí několika kliknutí myší. Jedná se o multiplatformní aplikaci, která podporuje Linux, macOS a Windows. Na rozdíl od jiných programů je proprietární. Bezplatná verze má pouze omezené funkce.
Smart File Renamer je k dispozici jako balíček snap. Můžete jej nainstalovat pomocí následujícího příkazu:
$ sudo snap install smart-file-renamer
Po instalaci jej spusťte z nabídky nebo spouštěče aplikací. Přidejte soubory a adresáře, které chcete přejmenovat, a klepněte na tlačítko Přejmenovat ve spodní části.
Podporuje mnoho pravidel a filtrů pro dávkové přejmenování. Stačí je vybrat na pravé straně okna aplikace a stisknout tlačítko Přejmenovat.
Závěr
Tady máš! V této příručce jsme probrali 8 metod hromadného přejmenování souborů v Linuxu. Poskytli jsme jak příkazový řádek, tak grafické programy pro přejmenování více souborů najednou. Stačí si vybrat ten, který vám vyhovuje, a dokončit práci.
A to je zatím vše. Doufám, že to bylo užitečné. Znáte nějakou jinou metodu, jak přidat do tohoto seznamu? Uveďte je prosím v sekci komentářů níže. Tuto příručku podle toho zkontroluji a aktualizuji.