Úvod
Linux poskytuje několik možností pro přejmenování souborů, včetně použití GUI a více vyhrazených příkazů terminálu. Díky tomu je poměrně snadné přejmenovat jednotlivé soubory, ale může být náročné přejmenovat více souborů najednou.
v tomto tutoriálu projdeme různé příkazy, které můžete použít v terminálu Linux k přejmenování souborů v Linuxu.
předpoklady
- systém s linuxovou distribucí
- účet s oprávněními sudo
- přístup do okna/příkazového řádku terminálu
- přístup do textového editoru, jako je Vim nebo Nano
přejmenování souborů příkazem mv
příkaz Linux mv
(přesunout) se používá k přesunu souborů a adresářů z terminálu. Používá následující syntaxi:
mv
pokud zadáte adresář jako cíl při použití příkazu mv
, zdrojový soubor se přesune do tohoto adresáře. Pokud je cílem jiný název souboru, příkaz mv
místo toho přejmenuje zdrojový soubor na tento název.
poznámka: Další informace o použití příkazu mv naleznete v našem průvodci přesouváním adresářů v Linuxu.
přejmenujte jeden soubor příkazem MV
pomocí příkazu mv
s výchozí syntaxí můžete přejmenovat jeden soubor:
mv
například pokud chceme přejmenovat příklad1.txt do příkladu2.txt, použili bychom:
mv example1.txt example2.txt
protože pokud je příkaz úspěšný, není výstup, používáme příkaz ls
ke kontrole, zda se název změnil:
ls -l
přejmenujte více souborů příkazem MV
Samostatně, příkaz mv
přejmenuje jeden soubor. Kombinace s jinými příkazy však umožňuje přejmenovat více souborů současně.
jednou z metod je použít příkaz find
k výběru více souborů s podobným názvem, poté je pomocí příkazu mv
přejmenujte:
find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;
pomocí této syntaxe příkaz find
definuje prvek aktuálního názvu souboru jako parametr vyhledávání. Dále -exec
provede příkaz mv
na všech souborech, které odpovídají vyhledávání, a změní jejich aktuální názvy souborů na nové.
například, pokud máme příklad1.txt, příklad2.txt a example3.txt a chcete změnit rozšíření na .pdf:
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
další metodou je použití příkazu mv
jako součásti smyčky <strong>for</strong>
ve skriptu bash.
pomocí stejného příkladu začněte vytvořením a otevřením souboru skriptu bash pomocí textového editoru, jako je Nano:
sudo nano rename_files.sh
poznámka: Další informace o používání skriptů bash pro správu souborů a adresářů v systému Linux.
přidejte do skriptu následující řádky:
#!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done
ve scénáři výše:
- první řádek instruuje skript, aby vyhledal všechny soubory v aktuálním adresáři končícím na .txt.
- druhý řádek používá příkaz
mv
u každého nalezeného souboru, který nahradí .txt rozšíření s.pdf. - třetí řádek končí segment smyčky.
stiskněte Ctrl + X, poté zadejte Y a stisknutím klávesy Enter uložte změny do skriptu a ukončete.
pro spuštění skriptu použijte příkaz sh
:
sh rename_files.sh
přejmenovat soubor příkazem přejmenovat
příkaz rename
se používá k přejmenování více souborů nebo adresářů v Linuxu. Nabízí více funkcí než příkaz mv
, ale může být náročnější na použití, protože vyžaduje základní znalost výrazů Perl.
Jak nainstalovat příkaz Přejmenovat
v mnoha distribucích Linuxu není příkaz rename
ve výchozím nastavení k dispozici. Pokud váš systém chybí příkaz rename
, nainstalujte jej pomocí:
- pro Ubuntu a Debian použijte
sudo apt install rename
- pro CentOS a Fedoru použijte
sudo yum install prename
- pro Arch Linux použijte
sudo pacman -S
přejmenovat
přejmenovat syntaxi příkazu a možnosti
existují tři typy regulárních výrazů Perl: shodovat, nahrazovat a překládat. Příkaz rename
používá výrazy substitute a translate ke změně názvů souborů a adresářů.
náhradní výrazy nahraďte část názvu souboru jiným řetězcem. Používají následující syntaxi:
rename 's///'
s touto syntaxí příkaz přejmenuje soubor nahrazením prvního výskytu prvku názvu souboru nahrazením. Ve výše uvedeném příkazu:
-
rename
: vyvolá příkaz Přejmenovat. -
: poskytuje volitelný argument, který mění způsob provádění příkazu.
-
s
: Označuje náhradní výraz. -
: určuje část názvu souboru, kterou chcete nahradit.
-
: určuje náhradu za část aktuálního názvu souboru.
-
: definuje soubor, který chcete přejmenovat.
překladový výraz překládá jeden řetězec znaků do druhého, znak pro znak. Tento typ výrazu používá následující syntaxi:
rename 'y///'
příklad příkazu rename
používajícího výraz translate:
rename 'y/abc/xyz/'
v tomto příkladu je každý znak a v názvu souboru nahrazen X, každý b y a každý c z.
příkaz přejmenování používá následující možnosti:
-
-a
: nahrazuje všechny výskyty prvku názvu souboru namísto pouze prvního. -
-f
: Vynutí přepsání existujících souborů. -
-h
: zobrazí text nápovědy. -
-i
: zobrazí výzvu před přepsáním existujících souborů. -
-l
: nahrazuje poslední výskyt prvku názvu souboru místo prvního. -
-n
: provádí suchý běh, aniž by došlo k trvalým změnám. Nejlépe v kombinaci s podrobným výstupem (-v
). -
-s
: přejmenuje cíl namísto symbolického odkazu. -
-v
: zobrazuje podrobnou verzi výstupu. -
-V
: Zobrazí verzi příkazu.
přejmenovat příklady příkazů
1. Změňte příponu souboru
Vrátíme-li se k našemu poslednímu příkladu, změňte příponu souboru z.txt do .pdf, použití:
rename -v 's/.txt/.pdf/' *.txt
2. Nahrazení části názvu souboru
nahrazení jiné části názvu souboru následuje stejnou syntaxi. Přejmenovat příklad1.txt, příklad2.txt a example3.txt na test1.txt, test2.txt a text3.txt, použití:
rename -v 's/example/test/' *.txt
3. Odstranit část názvu souboru
volba rename
také umožňuje odstranit část názvu souboru vynecháním náhradní části výrazu. Například, pokud chceme zkrátit příklad na ex:
rename -v 's/ample//' *.txt
4. Přejmenování souborů s podobnými názvy
dalším použitím pro volbu rename
je přejmenování souborů s podobnými názvy. Například, pokud chceme přejmenovat soubory s příkladem a ukázkou v jejich jménu k testování:
rename -v 's/(ex|s)ample/test/' *.txt
5. Přejmenovat soubory znak po znaku
příkaz rename
také umožňuje použít Překladové výrazy k přejmenování souborů na základě znaků po znaku. Například pokud chcete přejmenovat více souborů s názvem příklad souboru nahrazením prázdného místa podtržítkem (_):
rename -v 'y/ /\_/' *.txt
6. Převést malá písmena
Chcete-li převést malá písmena v názvech souborů na velká písmena, použijte:
rename -v 'y/a-z/A-Z/' *.txt
7. Převést velká písmena
reverzní také funguje, pokud přepneme pořadí velkých a malých znaků ve výrazu:
rename -v 'y/A-Z/a-z/' *.TXT
Poznámka: Při změně písmen znaků buďte opatrní, protože to také změní příponu souboru.
závěr
po přečtení tohoto tutoriálu byste měli být schopni přejmenovat soubory pomocí příkazů mv
a rename
v Linuxu.
další informace o používání příkazů Linux v našem podváděcím listu příkazů Linux.