Ako narábať s odovzdávaním názvov súborov medzerami

Linux má predvolený shell Bash (alias Bourne again shell) na vykonávanie príkazov pre systém. Väčšina programátorov uprednostňuje bash pred cmd kvôli flexibilite a výkonnému interpretu príkazového riadku, ktorý bash poskytuje. Väčšina používateľov však bude mať stále problémy, zatiaľ čo sa bude snažiť zvládnuť odovzdávanie názvov súborov medzerami v bash. Dôvodom je, že medzery sa v bashe nepovažujú za rovnaké ako v názvoch súborov.

Súbory s medzerami v názve

Prečo Bash nerozpoznal názov súboru s medzerami?

Ak v Bash zadáte viac slov bez znaku escape (\) alebo úvodzoviek, všetky slová sa budú považovať za argumenty. To platí pre všetky operácie, bez ohľadu na to, či meníte adresár pomocou príkazu „ cd “ alebo sa snažíte získať prístup k súborom pomocou príkazov „ cat “. Všetko, čo napíšete po ich použití, sa bude považovať za argument. Napríklad:

 cat file name.txt 

Spustenie príkazu bez použitia znaku escape alebo ponúk

Poznámka : Váš názov súboru môže byť čokoľvek, ale pre tento článok použijeme príklad „ file name.txt “.

Príkaz ' cat ' bude považovať súbor a meno za dva argumenty a nie za jediný argument. Ak však použijete znak escape alebo citácie, bash shell to bude považovať za jediný argument, ktorým bude „ file name.txt “.

Názov súboru s medzerami v basi

Existuje niekoľko metód, ktoré sa dajú použiť pre medzery v názve. Najlepšou praxou je vyhnúť sa medzerám pre názvy súborov v budúcnosti. Jednoduchou metódou bude premenovanie súboru, ku ktorému sa snažíte získať prístup, a odstránenie medzier. Niektoré iné metódy používajú jednoduché alebo dvojité úvodzovky v názve súboru s medzerami alebo symbol escape (\) tesne pred medzerou. Poskytneme metódy s použitými príkladmi, ktoré vám ukážu, ako to funguje.

Metóda 1: Použitie jednoduchých a dvojitých ponúk

  1. Podržte klávesy Ctrl + Alt a stlačením klávesu T otvorte terminál .
  2. Teraz zmeňte adresár na miesto, kde sa súbor nachádza.

    (Môžete tiež pretiahnuť súbor v termináli za príkaz ' cat ', ktorý automaticky umiestni citácie na cestu / adresár súboru)

     cd desktop 

    Zmena adresára

    Poznámka : Pracovnú plochu je možné zmeniť na miesto, ku ktorému sa snažíte získať prístup.

  3. Ak chcete prečítať textový súbor s medzerami v názve, zadajte nasledujúci príkaz:
     cat 'file name.txt' 

    alebo

     cat "file name.txt" 

    Použitie ponúk, aby sa predišlo medzerám v chybe názvu
  4. Výsledkom jednoduchých a dvojitých ponúk bude to isté. V niektorých prípadoch musíte vyskúšať obidve a zistiť, ktorá z nich funguje.

Metóda 2: Použitie znaku únikovej vôle

  1. Podržte klávesy Ctrl + Alt a stlačením klávesu T otvorte terminál .
  2. Pomocou nasledujúceho príkazu zmeňte adresár, do ktorého sa súbor nachádza.
     cd desktop 

    Poznámka : Namiesto pracovnej plochy uveďte názov umiestnenia.

  3. Teraz zadajte príkaz a použite únikový znak, kdekoľvek sa v názve nachádza medzera:
     súbor cat \ name.txt 

    Použitie znaku escape, aby nedošlo k chybe medzier

Bonus: Využitie ponúk a útek

Niekedy, keď používate adresár v príkaze, môžu mať dôsledky pre použitie ponúk na celkovej ceste. Dôvodom je skutočnosť, že niektoré príkazy ako ' mv ' alebo ' cp ' budú považovať cestu za zdrojový súbor, ak sa ponuka použije ako celok. Musíte zadať cenové ponuky pre zdroj aj cieľ jednotlivo, aby mohli príkazy ako ' cp ' správne fungovať. Môžete tiež skontrolovať príklad uvedený nižšie, ktorý vám ukáže, že použitie znaku escape pre cestu je omnoho zložitejšie a používatelia sa s ním môžu pomýliť.

Rozdiel medzi cenovými ponukami a únikovým charakterom

Zaujímavé Články