Při mnoha příležitostech se můžete setkat s názvy souborů a adresáři, které mají ve svých názvech mezery, zejména ty, které pocházejí ze systému Windows. Tyto mezery jsou často otravné, zvláště při práci z prostředí shellu, protože je musíte identifikovat, aby se s nimi nezacházelo jako se samostatnými názvy nebo volbami příkazů. Proto se v tomto tutoriálu podíváme na několik způsobů automaticky odstranit mezery.
Kromě toho také uvidíme, jak je lze použít soubory nebo adresáře s názvy, které mají mezery aniž by vám to vyhodilo chybu.
Jak používat soubory a adresáře s mezerami
Zkus to únikové prostory názvů souborů a adresářů v terminálu Linux, můžete to udělat těmito způsoby:
- Včetně "" (dvojitých uvozovek) v části cesty, kde jsou mezery, nebo v celé cestě. Například:
cd "nombre con espacio"/
- Použití znaku \ před každou mezerou. Například:
nano nombre\ con\ espacio.txt
Těmito způsoby budete obejít tyto nepříjemné prostory. Nyní, abyste nemuseli znovu používat tyto možnosti, které mohou být nepohodlnější, můžete postupovat podle těchto kroků…
Jak odstranit mezery ze jmen
Nyní můžete použít různé metody, aby tyto jmenné prostory přestaly být navždy problémem. Pokud máte velký počet jmen s mezerami, není logické je dělat jeden po druhém, ale můžete tyto úkoly automatizovat odstranit nebo nahradit mezery:
- Použijte k tomu příkaz přejmenovat. Například první z těchto příkazů odstraní mezery ze všech souborů .txt, zatímco druhý odstraní mezery ze všech souborů v aktuálním adresáři:
přejmenujte 's/\s/_/g' ./*.txt
přejmenovat 's/\s/_/g' ./*.*
- Použijte najít k nahrazení všech jmen, která mají mezery, a nahraďte je _. Udělejte to například se všemi .txt aktuálního adresáře nebo celého FS:
find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \; **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;