
Přejmenování adresářů je jednou z nejzákladnějších operací, které často potřebujete na systému Linux provádět. Adresáře můžete přejmenovat ze správce souborů GUI pomocí několika kliknutí nebo pomocí terminálu příkazového řádku.
Tento článek vysvětluje, jak přejmenovat adresáře pomocí příkazového řádku.
Přejmenování adresářů #
V Linuxu a operačních systémech podobných Unixu můžete použít mv
(zkratka move) příkaz pro přejmenování nebo přesun souborů a adresářů z jednoho umístění do druhého.
Syntaxe mv
příkaz pro přesun adresářů je následující:
mv [OPTIONS] source destination
Chcete-li například přejmenovat adresář dir1
jako dir2
běželi byste:
mv dir1 dir2
Při přejmenování adresářů musíte zadat přesně dva argumenty do mv
příkaz. První argument je aktuální název adresáře a druhý je nový název.
Je důležité si uvědomit, že pokud dir2
již existuje, dir1
se přesune do dir2
adresář.
Chcete-li přejmenovat adresář, který není v aktuálním pracovním adresáři, musíte zadat buď absolutní nebo relativní cestu:
mv /home/user/dir1 /home/user/dir2
Přejmenování více adresářů #
Přejmenování jednoho adresáře je jednoduchý úkol, ale přejmenování více adresářů najednou může být problém, zejména pro nové uživatele Linuxu.
Přejmenování více adresářů najednou je potřeba jen zřídka.
Přejmenování více adresářů pomocí mv
#
mv
příkaz může přejmenovat pouze jeden soubor najednou. Lze jej však použít ve spojení s jinými příkazy, jako je find
nebo uvnitř smyček pro přejmenování více souborů najednou.
Zde je příklad ukazující, jak používat Bash for
smyčka pro připojení aktuálního data k názvům všech adresářů v aktuálním pracovním adresáři:
for d in *; do
if [ -d "$d" ]; then
mv -- "$d" "${d}_$(date +%Y%m%d)"
fi
done
Pojďme analyzovat kód řádek po řádku:
- První řádek vytvoří smyčku a iteruje seznam všech souborů.
- Druhý řádek kontroluje, zda je soubor adresářem.
- Třetí řádek připojuje aktuální datum ke každému adresáři.
Zde je řešení pro stejnou úlohu pomocí mv
v kombinaci s find
:
find . -mindepth 1 -prune -type d -exec sh -c 'd="{}"; mv -- "$d" "${d}_$(date +%Y%m%d)"' \;
find
příkaz předává všechny adresáře do mv
jeden po druhém pomocí -exec
volba. Řetězec {}
je název aktuálně zpracovávaného adresáře.
Jak můžete vidět z příkladů, přejmenování více adresářů pomocí mv
není snadný úkol, protože vyžaduje dobrou znalost skriptování v Bash.
Přejmenování více adresářů pomocí rename
#
rename
příkaz se používá k přejmenování více souborů a adresářů. Tento příkaz je pokročilejší než mv
protože vyžaduje základní znalost regulárních výrazů.
Existují dvě verze rename
příkaz s jinou syntaxí. Použijeme verzi rename
v Perlu příkaz. Soubory jsou přejmenovány podle daného regulárního výrazu perlu.
Následující příklad ukazuje, jak nahradit mezery v názvech všech adresářů v aktuálním pracovním adresáři podtržítky:
find . -mindepth 1 -prune -type d | rename 'y/ /_/'
Pro jistotu předejte -n
možnost rename
pro tisk názvů adresářů, které mají být přejmenovány, bez jejich přejmenování.
Zde je další příklad ukazující, jak převést názvy adresářů na malá písmena:
find . -mindepth 1 -prune -type d | rename 'y/A-Z/a-z/'
Závěr č.
Ukázali jsme vám, jak používat mv
příkazy k přejmenování adresářů.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.