Úvod
Linux poskytuje několik možností pro přejmenování souborů, včetně použití GUI a několika vyhrazených terminálových příkazů. Díky tomu je relativně snadné přejmenovávat jednotlivé soubory, ale přejmenování více souborů najednou může být náročné.
V tomto tutoriálu si projdeme různé příkazy, které můžete použít v terminálu Linux k přejmenování souborů v systému Linux.
Předpoklady
- Systém s distribucí Linuxu
- Účet s právy sudo
- Přístup do okna terminálu/příkazového řádku
- Přístup k textovému editoru, jako je Vim nebo Nano
Přejmenujte soubory pomocí příkazu mv
Linux mv
Příkaz (move) se používá k přesunutí souborů a adresářů z terminálu. Používá následující syntaxi:
mv [options] [source] [destination]
Pokud při použití mv
zadáte jako cíl adresář příkaz se zdrojový soubor přesune do tohoto adresáře. Pokud je cílem jiný název souboru, mv
příkaz přejmenuje zdrojový soubor na tento název.
Přejmenujte jeden soubor pomocí příkazu mv
Pomocí mv
příkaz s výchozí syntaxí umožňuje přejmenovat jeden soubor:
mv [options] [current file name] [new file name]
Například pokud chceme přejmenovat example1.txt do example2.txt , použili bychom:
mv example1.txt example2.txt
Protože pokud je příkaz úspěšný, není k dispozici žádný výstup, používáme ls
příkaz ke kontrole, zda se jméno změnilo:
ls -l
Přejmenujte více souborů pomocí příkazu mv
Samotný mv
příkaz přejmenuje jeden soubor. Kombinací s jinými příkazy však můžete přejmenovat více souborů současně.
Jednou z metod je použití find
k výběru více souborů s podobným názvem, pak použijte mv
příkaz k jejich přejmenování:
find . -depth -name "[current file name element]" -exec sh -c 'f="{}"; mv -- "$f" "${f%[current file name element]}[new file name element]"' \;
Pomocí této syntaxe find
příkaz definuje prvek aktuálního názvu souboru jako parametr vyhledávání. Dále -exec
spustí mv
příkaz na všechny soubory, které odpovídají hledání, a změní jejich aktuální názvy souborů na nové.
Například pokud máme example1.txt , example2.txt a example3.txt a chcete změnit příponu na .pdf :
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
Další metodou je použití mv
příkaz jako součást <strong>for</strong>
smyčka 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
Přidejte do skriptu následující řádky:
#!/bin/bash
for f in *.txt; do
mv -- "$f" "${f%.txt}.pdf"
done
Ve skriptu výše:
- První řádek dává skriptu pokyn, aby vyhledal všechny soubory v aktuálním adresáři s koncovkou .txt .
- Druhý řádek používá
mv
příkaz na každý nalezený soubor, který nahradí .txt rozšíření s .pdf . - Třetí řádek ukončuje segment smyčky.
Stiskněte Ctrl+X a poté zadejte Y a stiskněte Enter pro uložení změn skriptu a ukončení.
Použijte sh
příkaz ke spuštění skriptu:
sh rename_files.sh
Přejmenovat soubor pomocí příkazu přejmenovat
rename
příkaz se používá k přejmenování více souborů nebo adresářů v Linuxu. Nabízí více funkcí než mv
příkaz, ale jeho použití může být náročnější, protože vyžaduje základní znalost výrazů v Perlu.
Jak nainstalovat příkaz pro přejmenování
V mnoha distribucích Linuxu rename
příkaz není ve výchozím nastavení dostupný. Pokud ve vašem systému chybí rename
příkaz, 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řejmenujte syntaxi a možnosti příkazu
Existují tři typy regulárních výrazů v Perlu:shoda , náhrada a přeložit . rename
příkaz používá náhradní a překladové výrazy ke změně názvů souborů a adresářů.
Náhradní výrazy nahrazují část názvu souboru jiným řetězcem. Používají následující syntaxi:
rename [options] 's/[filename element]/[replacement]/' [filename]
S touto syntaxí příkaz přejmenuje soubor nahrazením prvního výskytu prvku filename s náhradou . V příkazu výše:
rename
:Vyvolá příkaz přejmenovat.[options]
:Poskytuje volitelný argument, který mění způsob provádění příkazu.s
:Označuje zástupný výraz.[filename element]
:Určuje část názvu souboru, kterou chcete nahradit.[replacement]
:Určuje náhradu za část aktuálního souboru.[filename]
:Definuje soubor, který chcete přejmenovat.
Překladový výraz překládá jeden řetězec znaků na jiný, znak za znakem. Tento typ výrazu používá následující syntaxi:
rename [options] 'y/[string 1]/[string 2]/' [filename]
Příklad rename
příkaz pomocí překladového výrazu:
rename 'y/abc/xyz/'
V tomto příkladu každé a znak v názvu souboru je nahrazen x , každé b od y a každé c podle z .
Přejmenovat používá následující možnosti:
-a
:Nahradí 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
:Nahradí poslední výskyt prvku názvu souboru místo prvního.-n
:Provádí chod nasucho, neprovádí žádné trvalé změny. Nejlépe v kombinaci s podrobným výstupem (-v
).-s
:Přejmenuje cíl namísto symbolického odkazu.-v
:Zobrazí podrobnou verzi výstupu.-V
:Zobrazí verzi příkazu.
přejmenovat příklady příkazů
1. Změnit příponu souboru
Vraťme se k našemu poslednímu příkladu ke změně přípony souboru z .txt do .pdf , použijte:
rename -v 's/.txt/.pdf/' *.txt
2. Nahrazení části názvu souboru
Nahrazení jiné části názvu souboru se řídí stejnou syntaxí. Chcete-li přejmenovat example1.txt , example2.txt a example3.txt do test1.txt , test2.txt a text3.txt , použijte:
rename -v 's/example/test/' *.txt
3. Odstranit část názvu souboru
rename
volba také umožňuje smazat část názvu souboru vynecháním náhradní části výrazu. Například pokud chceme zkrátit příklad do ex :
rename -v 's/ample//' *.txt
4. Přejmenovat soubory s podobnými názvy
Další použití pro rename
možnost je přejmenovat soubory s podobnými názvy. Například pokud chceme přejmenovat soubory pomocí příkladu a ukázka jejich jménem k testování :
rename -v 's/(ex|s)ample/test/' *.txt
5. Přejmenovat soubory znak po znaku
rename
příkaz také umožňuje používat překladové výrazy k přejmenování souborů po jednotlivých znacích. Pokud například chcete přejmenovat více souborů s názvem ukázkový soubor 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
Opačně funguje i to, pokud ve výrazu přehodíme pořadí velkých a malých písmen:
rename -v 'y/A-Z/a-z/' *.TXT