Jedna věc, kterou si všimnete, že soubory v Linuxu obvykle neobsahují názvy. Váš učitel nebo kolega v názvech souborů a adresářů použije místo mezer podtržítko.
Není to tak, že nemůžete používat mezery v názvech souborů v terminálu Linux. Jde jen o to, že způsobuje další bolest, a proto byste se tomu měli vyhnout, kdekoli je to možné.
Proč? Dovolte mi to ukázat na příkladech. Znáte obecnou syntaxi příkazů Linuxu:
command [options] argument1 argument2
Zde jsou argumenty odděleny mezerami. Pokud se pokusíte použít názvy souborů s mezerami přímo, bude to považováno za samostatné argumenty, nikoli pouze za jeden argument.
Na výše uvedeném snímku obrazovky, když se pokouším použít cat agatha books
příkaz, nerozumí tomu, že agatha books
je jediný argument. Zachází s agatha
a books
jako různé názvy souborů.
Jak se tedy vypořádáte s mezerami v souboru? Existují dva způsoby:
Zabalte celý název souboru do uvozovek:
"file name withn spaces"
Opusťte každou mezeru pomocí zpětného lomítka:
file\ name\ with\ spaces
Ukážu to podrobně.
Dokončování tabel často funguje i s mezerami. Pokud stisknete klávesu tabulátoru pro název souboru, váš terminál může zobrazit název souboru s mezerou uniklou zpětným lomítkem.Čtení souboru s mezerami v názvu souboru
Chcete-li použít název souboru s mezerami, můžete jej zabalit do uvozovek takto:
cat "file name with spaces"
Můžete také opustit každou mezeru zpětným lomítkem, ale je to pracnější a matoucí než předchozí metoda:
cat file\ name\ with\ spaces
V zásadě vložíte \
před každou mezerou v názvu souboru.
Místo dvojitých uvozovek můžete také použít jednoduché uvozovky.
cat 'file name with spaces'
Jednoduché uvozovky ignorují jakékoli speciální znaky. Dvojité uvozovky ignorují všechny kromě $, zpětných uvozovek a lomítek. Více o tom v některém jiném tutoriálu. Vytvořit soubor s mezerou v názvu souboru
Nyní musíte do terminálu zadat mezeru, abyste zde vytvořili název souboru. Znovu použijte zpětné lomítko nebo uvozovky.
Podobně jako v předchozí části můžete vytvářet nové soubory s mezerami v názvu souboru pomocí uvozovek:
touch "file name with spaces"
Nebo také zpětné lomítko:
touch file\ name\ with\ spaces
Nakládání s místem v názvu složky
Adresář s mezerou v názvu můžete vytvořit stejným způsobem, jakým vytváříte soubor.
mkdir "new dir"
Nyní, pokud se chcete přepnout do tohoto adresáře, budete mít cestu s mezerami.
Ale to už by pro vás neměl být problém. Chcete-li cd do adresáře s mezerou, použijte znovu uvozovky nebo zpětné lomítko.
cd "new dir"
cd new\ dir
V podstatě vždy, když se musíte vypořádat s mezerami ve jménech, používáte uvozovky nebo klávesy se zpětným lomítkem.
Předpokládejme, že musíte zkopírovat soubor my file
z tohoto new dir
. Zde je to, co můžete udělat:
cp new\ dir/my\ file
Teď to začíná být trochu matoucí, že? Existují zpětná lomítka a dopředná lomítka. Mohlo by to zastrašit nového uživatele nebo dokonce zkušeného, pokud je těch lomítek příliš mnoho.
Je to ještě komplikovanější, když jsou v názvu souboru zpětná lomítka. Potom uvidíte dvojité zpětné stříkance.
To je důvod, proč byste se měli snažit nepoužívat mezery nebo jiné speciální znaky v názvech souborů. Chcete-li oddělit slova v názvu souboru, použijte podtržítko.
touch a_very_long_file_name_with_too_many_words
To usnadňuje čtení názvů souborů a nebudete muset vynakládat další úsilí, abyste se vypořádali s těmito mezerami v názvech souborů.