GNU/Linux >> Znalost Linux >  >> Linux

Jak přejmenovat soubory a adresáře v Linuxu

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 source zadáte více souborů , destination musí být adresář. V tomto případě source soubory se přesunou do cílového adresáře.
  • Pokud jako source určíte jeden soubor a destination cíl je existující adresář, pak se soubor přesune do zadaného adresáře.
  • Chcete-li přejmenovat soubor, musíte jako source zadat jeden soubor a jeden soubor jako destination cí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áří for smyč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í .html s .php . Část ${file%.html} používá parametr shell expanze k odstranění .html část z názvu souboru.
  • done označ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 rename na Ubuntu a Debianu

    sudo apt install rename
  • Nainstalujte rename na CentOS a Fedoře

    sudo yum install prename
  • Nainstalujte rename na Arch Linux

    yay 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ář.


Linux
  1. Jak přejmenovat soubory v Linuxu

  2. Jak přejmenovat adresář v Linuxu

  3. Linux Odstraňte soubory a adresáře

  1. Jak archivovat soubory a adresáře v Linuxu [část 2]

  2. Jak archivovat soubory a adresáře v Linuxu [část 1]

  3. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

  1. Jak kopírovat soubory a adresáře v Linuxu

  2. Jak přejmenovat soubory v Linuxu

  3. Jak odstranit adresáře a soubory pomocí Linuxu