Při práci s Linuxem můžete narazit na některé nástroje a aplikace, které pracují pouze s názvy souborů, které neobsahují žádné mezery. Ne vždy ukládáme soubory v tomto formátu „bez místa“ a možná budeme muset hledat řešení, které mezery v názvech souborů odstraní úplně. Vaše názvy souborů tak nebudou obsahovat žádné mezery a můžete s nimi snadno pracovat ve všech svých aplikacích.
V tomto článku vám vysvětlíme dva způsoby, jak odstranit mezery z názvů souborů, velmi jednoduše pomocí příkazového řádku Ubuntu.
Spustili jsme příkazy a postupy uvedené v tomto článku na systému Ubuntu 18.04 LTS.
Metoda 1:Prostřednictvím příkazu mv v cyklu „for“
V této metodě budeme používat příkaz Ubuntu mv ve smyčce for k přejmenování všech souborů/složek v adresáři tak, aby byly odstraněny všechny mezery.
Otevřete příkazový řádek Ubuntu, Terminál, buď pomocí vyhledávání ve Spouštěči aplikací, nebo pomocí zkratky Ctrl+Alt+T.
Takto vypadají soubory v mé ukázkové složce; Obsah jsem uvedl pomocí příkazu ls:
Všechny názvy souborů tedy neobsahují jednu, ale každá dvě mezery.
Toto je příkaz, který použiji v adresáři, jehož soubory chci přejmenovat:
$ for oldname in *; do newname=`echo $oldname | sed -e 's/ //g'`; mv "$oldname" "$newname";
hotovo
Když jsem znovu vypsal obsah adresáře, můžete vidět, že všechny názvy souborů již neobsahují žádné mezery.
Metoda 2:Použití bash skriptu k přejmenování souborů
V této metodě použijeme bash skript, který používá příkaz mv k přejmenování názvů souborů a složek tak, aby byly odstraněny všechny mezery.
Otevřete aplikaci Terminál a přesuňte se do složky bin následovně:
$ cd ~bin
Nyní otevřete nový soubor skriptu v jednom z vašich oblíbených textových editorů. K otevření prázdného souboru skriptu s názvem remove_spaces.sh
použijeme editor Nano$ sudo nano remove_spaces.sh
Do tohoto prázdného souboru přidejte následující skript:
#!/bin/bash ( IFS=$'\n' for y in $(ls $1) do mv $1/`echo $y | sed 's/ /\\ /g'` $1/`echo "$y" | sed 's/ /_/g'` done )
Tip: Místo psaní celého skriptu do bash souboru jej můžete zkopírovat odtud a vložit do Terminálu pomocí Ctrl+Shift+V nebo pomocí možnosti Vložit z nabídky po kliknutí pravým tlačítkem.
Takto bude váš soubor vypadat:
Nyní ukončete soubor pomocí klávesové zkratky Ctrl+X a uložte soubor na "Uložit upravenou vyrovnávací paměť?" zadejte Y a poté stiskněte Enter.
Chcete-li z tohoto souboru vytvořit spustitelný skript, spusťte ve svém terminálu následující příkaz:
$ sudo chmod +x remove_spaces.sh
Nyní jste připraveni použít skript v kterékoli ze svých složek.
Když spustím skript v mém „ukázkovém“ adresáři ve složce Stažené soubory, vidím, že všechny mezery v názvech mých souborů byly odstraněny. Výsledek můžete vidět, když znovu vypíšu obsah souboru pomocí příkazu ls:
Takže toto byly dva způsoby, kterými můžete přejmenovat soubory tak, aby byly odstraněny všechny mezery v jejich názvech. Nyní žádná aplikace, kterou používáte, nebude selhat při rozpoznání názvů souborů obsahujících mezery.