Ako zvládnuť odovzdávanie názvov súborov s priestormi v Bash

Linux má predvolený shell Bash (alias Bourne opäť 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 tlmočníkovi príkazového riadku, ktorý bash poskytuje. Väčšina používateľov však bude mať stále problémy, keď sa pokúsia zvládnuť odovzdávanie názvov súborov s medzerami v bashe. Je to tak preto, lebo medzery sa v bashe nepovažujú za rovnaké ako v názvoch súborov.

Prečo Bash nerozpoznáva názov súboru s priestorom?

V bashskom jazyku, ak napíšete viac slov bez uniknúť znak (\) alebo citácie, bude všetky slová považované za argumenty. To platí pre všetky operácie, či už meníte adresár pomocou ‘cd„Alebo sa pokúšam získať prístup k súborom pomocou„kat„Príkazy. Čokoľvek, čo po použití napíšete, sa bude považovať za argument. Napríklad:

názov súboru mačky.txt

Poznámka: Váš názov súboru môže byť akýkoľvek, ale pre tento článok nebudeme používať výraz „názov súboru.txt" ako príklad.

Tu 'kat„Príkaz zváži spis a názov ako dva argumenty a nie ako jediný argument. Ak však použijete únikový znak alebo citácie, bash shell to bude považovať za jediný argument, ktorým bude „názov súboru.txt“.

Názov súboru s medzerami v Bashi

Existuje niekoľko metód, ktoré možno použiť pre medzery v názve. Osvedčeným postupom je v budúcnosti vyhnúť sa medzerám pre názvy súborov. Jednoduchou metódou bude premenovanie súboru, ku ktorému sa pokúšate získať prístup, a odstránenie medzier. Niektoré ďalšie metódy používajú jednoduché alebo dvojité úvodzovky v názve súboru s medzerami alebo použitie symbolu escape (\) priamo pred medzerou. Poskytneme metódy s použitými príkladmi, ktoré vám ukážu, ako to funguje.

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

  1. Vydrž Ctrl + Alt tlačidlá a stlačte T na otvorenie Terminál.
  2. Teraz zmeňte adresár na miesto, kde sa nachádza súbor.

    (môžete tiež ťahať a pokles súbor v termináli po príkaze ‘kat„, Ktorý automaticky umiestni ponuky do cesty / adresára k súboru)

    CD Desktop

    Poznámka: Desktop je možné zmeniť na umiestnenie, ku ktorému sa pokúšate získať prístup.

  3. Zadajte nasledujúci príkaz na čítanie textového súboru s medzerami v názve:
    mačka 'názov súboru.txt'

    alebo

    mačka "názov súboru.txt"
  4. Jednoduché a dvojité ponuky budú mať za následok to isté. V niektorých prípadoch musíte vyskúšať oboje a zistiť, ktorý z nich funguje.

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

  1. Vydrž Ctrl + Alt tlačidlá a stlačte T na otvorenie Terminál.
  2. Zmeňte adresár na miesto, kde sa nachádza súbor, pomocou nasledujúceho príkazu.
    CD Desktop

    Poznámka: Vložte názov svojej polohy na miesto pracovnej plochy.

  3. Teraz zadajte príkaz a použite uniknúť znak kdekoľvek je v mene medzera:
    mačací súbor \ name.txt

Bonus: Využitie ponúk a únik

Niekedy, keď používate adresár v príkaze, môžu mať dôsledky použitie úvodzoviek na celkovej ceste. Je to preto, lebo niektoré príkazy ako „mv„Alebo“cp„Bude považovať cestu za zdroj súboru ak je cenová ponuka použitá ako celok. Musíte poskytnúť ponuky pre obidve zdroj a destinácia jednotlivo, takže príkazy ako ‘cp„Môže fungovať správne. Môžete tiež skontrolovať príklad uvedený nižšie, ktorý vám ukáže, že použitie únikového znaku pre cestu je oveľa zložitejšie a používatelia sa s ním môžu mýliť.