Jak zacházet s předáváním názvů souborů mezerami v rozbití

Linux má výchozí shell Bash (alias Bourne again shell) pro provádění příkazů pro systém. Většina programátorů preferuje bash před cmd kvůli flexibilitě a výkonnému interpretu příkazového řádku, který bash poskytuje. Většina uživatelů však bude mít stále problémy při pokusu o řešení předávání názvů souborů mezerami v bashu. Důvodem je, že mezery nejsou v bash považovány za stejné jako v názvech souborů.

Soubory s mezerami v názvu

Proč Bash nerozpoznal název souboru s mezerami?

Pokud v Bashu zadáte více slov bez znaku escape (\) nebo uvozovek, budou všechna slova považována za argumenty. To platí pro všechny operace, ať už měníte adresář pomocí ' cd ' nebo se pokoušíte získat přístup k souborům pomocí ' cat ' příkazů. Vše, co píšete po jejich použití, bude považováno za argument. Například:

 název souboru kočky.txt 

Spuštění příkazu bez použití znaku escape nebo nabídek

Poznámka : Název vašeho souboru může být libovolný, ale pro tento článek použijeme jako příklad „ file name.txt “.

Příkaz ' cat ' bude považovat soubor a jméno spíše za dva argumenty než za jediný argument. Pokud však použijete znak escape nebo uvozovky, bash shell to bude považovat za jediný argument, kterým bude „ file name.txt “.

Název souboru s mezerami v Bash

Existuje několik metod, které lze použít pro mezery v názvu. Nejlepší praxí je vyhnout se mezerám pro názvy souborů v budoucnu. Jednoduchou metodou bude přejmenování souboru, ke kterému se pokoušíte získat přístup a odstranění mezer. Některé jiné metody používají jednoduché nebo dvojité nabídky na názvu souboru s mezerami nebo pomocí symbolu escape (\) těsně před mezerou. Poskytneme metody s použitými příklady, abychom vám ukázali, jak to funguje.

Metoda 1: Použití jednoduchých a dvojitých nabídek

  1. Podržte klávesy Ctrl + Alt a stisknutím klávesy T otevřete terminál .
  2. Nyní změňte adresář na místo, kde je soubor umístěn.

    (Můžete také přetáhnout soubor do terminálu za příkaz ' cat ', který automaticky umístí citace na cestu / adresář souboru)

     cd desktop 

    Změna adresáře

    Poznámka : Desktop lze změnit na místo, ke kterému se pokoušíte přistupovat.

  3. Chcete-li číst textový soubor s mezerami v názvu, zadejte následující příkaz:
     cat 'file name.txt' 

    nebo

     kočka "file name.txt" 

    Pomocí nabídek se vyhnete mezerám v chybě názvu
  4. Výsledkem jednoduchých a dvojitých nabídek bude totéž. V některých případech je třeba vyzkoušet oba a zjistit, který z nich funguje.

Metoda 2: Použití znaku Escape

  1. Podržte klávesy Ctrl + Alt a stisknutím klávesy T otevřete terminál .
  2. Pomocí následujícího příkazu změňte adresář, do kterého je soubor umístěn.
     cd desktop 

    Poznámka : Místo plochy umístěte název místa.

  3. Nyní zadejte příkaz a použijte znak escape, kdekoli je v názvu místo:
     soubor cat \ name.txt 

    Pomocí znaku escape se vyhnete chybě mezer

Bonus: Využití nabídek a útěku

Někdy, když používáte adresář v příkazu, mohou mít důsledky pro použití nabídek na celkové cestě. Důvodem je to, že některé příkazy jako ' mv ' nebo ' cp ' považují cestu za zdroj souboru, pokud je nabídka použita jako celek. Musíte zadat nabídky pro zdroj i cíl jednotlivě, aby příkazy jako ' cp ' mohly správně fungovat. Můžete také zkontrolovat níže uvedený příklad, který vám ukáže, že použití únikového znaku pro cestu je mnohem složitější a uživatelé s ním mohou udělat chybu.

Rozdíl mezi nabídkami a únikovým charakterem

Zajímavé Články