Terminál_Jak vytvořit složku a soubor
Obsah:
- Přejmenování souborů pomocí příkazu mv
- Přejmenování více souborů pomocí příkazu mv
- Přejmenování souborů pomocí příkazu přejmenování
- Závěr
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ýtdestination
adresář. V tomto případě jsousource
soubory přesunuty do cílového adresáře. Pokud jakosource
zadáte jeden soubor adestination
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 jakosource
a jeden soubor jakodestination
cíl.
Chcete-li například přejmenovat soubor
file1.txt
jako
file2.txt
, spustíte:
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.
Jak kopírovat soubory a adresáře v Linuxu
Kopírování souborů a adresářů je jedním z nejčastějších úkolů, které budete provádět při práci na příkazovém řádku. V Linuxu existuje několik příkazů pro kopírování souborů, přičemž nejčastěji používanými nástroji jsou cp a rsync.
Jak přesouvat soubory a adresáře v Linuxu (příkaz mv)
Přesouvání souborů a adresářů je jedním z nejzákladnějších úkolů, které v systému Linux často potřebujete. V tomto tutoriálu si vysvětlíme, jak pomocí příkazu mv přesouvat soubory a adresáře.
Příkaz Přejmenovat v Linuxu (přejmenovat více souborů)
Příkaz přejmenování přejmenuje dané soubory nahrazením vyhledávacího výrazu v jejich názvu zadanou náhradou.