Přejmenování souborů je jedním z nejzákladnějších úkolů, které často musíte provádět v systému Linux. Soubory můžete přejmenovat pomocí správce souborů GUI nebo pomocí terminálu příkazového řádku.
Přejmenování jednoho souboru je snadné, ale přejmenování více souborů najednou může být problém, zejména pro uživatele, kteří s Linuxem začínají.
V tomto tutoriálu vám ukážeme, jak používat mv a rename příkazy k přejmenování souborů a adresářů.
Přejmenování souborů pomocí mv Příkaz #
mv příkaz (short of move) se používá k přejmenování nebo přesunutí souborů z jednoho umístění do druhého. Syntaxe pro mv příkaz je následující:
mv [OPTIONS] source destination
source může být jeden nebo více souborů nebo adresářů a destination může být jeden soubor nebo adresář.
- Pokud jako
sourcezadáte více souborů ,destinationmusí být adresář. V tomto případěsourcesoubory se přesunou do cílového adresáře. - Pokud jako
sourceurčíte jeden soubor adestinationcíl je existující adresář, pak se soubor přesune do zadaného adresáře. - Chcete-li přejmenovat soubor, musíte jako
sourcezadat jeden soubor a jeden soubor jakodestinationcíl.
Chcete-li například přejmenovat soubor file1.txt jako file2.txt běželi byste:
mv file1.txt file2.txt Přejmenování více souborů pomocí mv Příkaz #
mv příkaz může přejmenovat pouze jeden soubor najednou, ale lze jej použít ve spojení s jinými příkazy, jako je find nebo uvnitř bash for nebo while smyčky pro přejmenování více souborů.
Následující příklad ukazuje, jak použít smyčku Bash for k přejmenování všech .html soubory v aktuálním adresáři změnou .html rozšíření na .php .
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
Pojďme analyzovat kód řádek po řádku:
- První řádek vytváří
forsmyčka a iteruje seznamem všech souborů ohraničených.html. - Druhý řádek se vztahuje na každou položku seznamu a přesune soubor do nového, který nahradí
.htmls.php. Část${file%.html}používá parametr shell expanze k odstranění.htmlčást z názvu souboru. doneoznačuje konec segmentu smyčky.
Zde je příklad použití mv v kombinaci s find dosáhnout stejného jako výše:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
find příkaz předává všechny soubory končící na .html v aktuálním adresáři do mv jeden po druhém pomocí -exec volba. Řetězec {} je název aktuálně zpracovávaného souboru.
Jak můžete vidět z příkladů výše, přejmenování více souborů pomocí mv příkaz není snadný úkol, protože vyžaduje dobrou znalost skriptování v Bash.
Přejmenování souborů pomocí rename Příkaz #
rename příkaz se používá k přejmenování více souborů. Tento příkaz je pokročilejší než mv protože to vyžaduje určité základní znalosti regulárních výrazů.
Existují dvě verze rename příkaz s jinou syntaxí. V tomto tutoriálu budeme používat verzi rename v Perlu příkaz. Pokud tuto verzi na svém systému nainstalovanou nemáte, můžete ji snadno nainstalovat pomocí správce balíčků vaší distribuce.
-
Nainstalujte
renamena Ubuntu a Debianusudo apt install rename -
Nainstalujte
renamena CentOS a Fedořesudo yum install prename -
Nainstalujte
renamena Arch Linuxyay perl-rename ## or yaourt -S perl-rename
Syntaxe pro rename příkaz je následující:
rename [OPTIONS] perlexpr files
rename příkaz přejmenuje files podle zadaného perlexpr regulární výraz. Více o regulárních výrazech perlu si můžete přečíst zde.
Následující příklad změní všechny soubory s příponou .html na .php :
rename 's/.html/.php/' \*.html
Můžete použít -n možnost vytisknout názvy souborů, které mají být přejmenovány, bez jejich přejmenování.
rename -n 's/.html/.php/' \*.html Výstup bude vypadat nějak takto:
rename(file-90.html, file-90.php)
rename(file-91.html, file-91.php)
rename(file-92.html, file-92.php)
rename(file-93.html, file-93.php)
rename(file-94.html, file-94.php)
Ve výchozím nastavení rename příkaz nepřepíše existující soubory. Předejte -f možnost povolit přepsání existujících souborů:
rename -f 's/.html/.php/' \*.html
Níže je několik běžných příkladů použití rename příkaz:
-
Nahraďte mezery v názvech souborů podtržítky
rename 'y/ /\_/' \* -
Převést názvy souborů na malá písmena
rename 'y/A-Z/a-z/' \* -
Převést názvy souborů na velká písmena
rename 'y/a-z/A-Z/' \*
Závěr č.
Ukázali jsme vám, jak používat mv a rename příkazy k přejmenování souborů.
V Linuxu existují také další příkazy pro přejmenování souborů, například mmv . Noví uživatelé Linuxu, kteří jsou zastrašováni příkazovým řádkem, mohou používat nástroje pro hromadné přejmenování GUI, jako je například Métamorphose.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.