Android

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

Terminál_Jak vytvořit složku a soubor

Terminál_Jak vytvořit složku a soubor

Obsah:

Anonim

Přejmenování souborů a adresářů je jedním z nejzákladnějších úkolů, které v systému Linux často potřebujete.

Přejmenování jednoho souboru je snadné, ale přejmenování více souborů najednou může být výzvou, zejména pro uživatele, kteří jsou v systému Linux noví. Soubory můžete přejmenovat pomocí správce souborů GUI nebo pomocí terminálu příkazového řádku.

V tomto tutoriálu vám ukážeme, jak používat příkazy mv a rename k přejmenování souborů a adresářů.

Přejmenování souborů pomocí příkazu mv

Příkaz mv (krátký od přesunutí) se používá k přejmenování nebo přesunutí souborů z jednoho umístění na druhé. Syntaxe příkazu mv je následující:

mv source destination

source může být jeden nebo více souborů nebo adresářů a destination může být jediný soubor nebo adresář.

  • Pokud jako source zadáte více souborů, musí být destination adresář. V tomto případě jsou source soubory přesunuty do cílového adresáře. Pokud jako source zadáte jeden soubor a destination cílem je existující adresář, pak se soubor přesune do určeného adresáře. Chcete-li přejmenovat soubor, musíte zadat jeden soubor jako source a jeden soubor jako destination cíl.

Chcete-li například přejmenovat soubor file1.txt jako file2.txt , spustíte:

mv file1.txt file2.txt

Přejmenování více souborů pomocí příkazu mv

Příkaz mv může přejmenovat najednou pouze jeden soubor, ale může být použit ve spojení s jinými příkazy, jako je find nebo uvnitř bash pro nebo během smyček pro přejmenování více souborů.

Následující příklad ukazuje, jak pomocí Bash for loop přejmenovat všechny soubory .html v aktuálním adresáři změnou přípony .html na .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

Pojďme analyzovat kód po řádku:

  • První řádek vytvoří smyčku for a iteruje seznamem všech souborů, které jsou ohraničeny .html . Druhý řádek se vztahuje na každou položku seznamu a přesune soubor do nového nahrazením .html nahrazením .php . Část ${file%.html} používá expanzi parametrů shellu k odstranění části .html ze souboru filename.done označuje konec segmentu smyčky.

Můžeme také použít příkaz mv v kombinaci s find k dosažení stejného stavu jako výše.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

Příkaz find předává všechny soubory končící .html v aktuálním adresáři na příkaz mv jeden po druhém pomocí přepínače -exec . Řetězec {} je název aktuálně zpracovávaného souboru.

Jak je vidět z výše uvedených příkladů, přejmenování více souborů pomocí příkazu mv není snadný úkol, protože vyžaduje dobrou znalost skriptování Bash.

Přejmenování souborů pomocí příkazu přejmenování

Příkaz rename se používá k přejmenování více souborů. Tento příkaz je pokročilejší než mv protože vyžaduje základní znalost regulárních výrazů.

Existují dvě verze příkazu rename s odlišnou syntaxí. V tomto tutoriálu budeme používat perl verzi příkazu rename . Pokud nemáte tuto verzi na vašem systému nainstalovanou, můžete ji snadno nainstalovat pomocí správce balíčků vaší distribuce.

  • Nainstalujte přejmenování na Ubuntu a Debian

    sudo apt install rename

    Nainstalujte přejmenování na CentOS a Fedora

    sudo yum install prename

    Nainstalujte přejmenování na Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

Syntaxe příkazu rename je následující:

rename perlexpr files

Příkaz rename přejmenuje všechny files podle zadaného regulárního výrazu perlexpr . Můžete o perl regulárních výrazech zde.

Následující příkaz například změní všechny soubory s příponou .html na .php :

rename 's/.html/.php/' *.html

Pomocí argumentu -n můžete tisknout názvy souborů, které mají být přejmenovány, aniž byste je přejmenovali.

rename -n 's/.html/.php/' *.html

Výstup bude vypadat asi 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í nebude příkaz přejmenovat existující soubory. Předejte argument -f který umožní přepsání existujících souborů.

rename -f 's/.html/.php/' *.html

Níže uvádíme několik běžnějších příkladů použití příkazu přejmenování:

  • Nahraďte mezery v názvech souborů podtržítky

    rename 'y/ /_/' *

    Převést názvy souborů na malá písmena

    rename 'y/AZ/az/' *

    Převést názvy souborů na velká písmena

    rename 'y/az/AZ/' *

Závěr

Nyní byste měli dobře rozumět tomu, jak k přejmenování souborů používat příkazy mv a rename . Samozřejmě existují i ​​jiné příkazy pro přejmenování souborů v Linuxu, například mmv . Noví uživatelé systému Linux, kteří jsou zastrašováni příkazovým řádkem, mohou používat nástroje dávkového přejmenování GUI, jako je například metamorfóza.

přejmenovat terminál mv