GNU/Linux >> Znalost Linux >  >> Linux

Jak se vypořádat s názvy souborů pomocí mezer v Linuxu

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ů.


Linux
  1. Jak přejmenovat soubor v Linuxu?

  2. Jak vytvořit systém souborů ZFS pomocí komprese souborů v systému Linux

  3. Jak vytvořit soubor s danou velikostí v Linuxu?

  1. Jak manipulovat s názvy souborů s mezerami a speciálními znaky v Linuxu

  2. Linux + Jak ignorovat (filtrovat) soubor s mezerou?

  3. Jak smazat soubor s tímto názvem na linuxu:-]???????q

  1. Jak vytvořit osobní souborový server s SSH na Linuxu

  2. Jak napsat soubor s C v Linuxu?

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?