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



Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Linux má výchozí shell Bash (aka Bourne opět shell) pro provádění příkazů pro systém. Většina programátorů dává přednost bash před cmd kvůli flexibilitě a výkonnému tlumočníkovi 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 zvládnutí předávání názvů souborů s mezerami v bash. Je to proto, že mezery nejsou v bash považovány za stejné jako v názvech souborů.



Soubory s mezerami v názvu



Proč Bash nerozpozná název souboru s mezerami?

Pokud v Bash zadáte více slov bez uniknout znak () nebo nabídky , bude všechna slova považovat za argumenty. To platí pro všechny operace, ať už měníte adresář pomocí ‚ CD „Nebo se pokouším o přístup k souborům pomocí„ kočka „Příkazy. Cokoli, co po použití napíšete, bude považováno za argument. Například:



název souboru kočky.txt

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

Poznámka : Název vašeho souboru může být jakýkoli, ale pro tento článek budeme používat „ název souboru.txt ' jako příklad.

Tady ' kočka „Příkaz zváží soubor a název jako dva argumenty, nikoli jako jediný argument. Pokud však použijete únikový znak nebo citace, bash shell to bude považovat za jediný argument, kterým bude „ název souboru.txt '.



Název souboru s mezerami v Bash

Existuje několik metod, které lze použít pro mezery v názvu. Osvědčeným postupem je v budoucnu vyhnout se mezerám pro názvy souborů. Jednoduchou metodou bude přejmenování souboru, ke kterému se pokoušíte získat přístup, a odstranění mezer. Některé další metody používají jednoduché nebo dvojité uvozovky na název souboru s mezerami nebo použití 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é a dvojité nabídky

  1. Držet Ctrl + Alt kláves a stiskněte T otevřít Terminál .
  2. Nyní změňte adresář na místo, kde je soubor umístěn.
    (můžete také táhnout a upustit soubor v terminálu po příkazu ‚ kočka „, Který automaticky umístí nabídky do cesty / adresáře k souboru)

    cd Desktop

    Změna adresáře

    Poznámka : Desktop lze změnit na umístění, ke kterému se pokoušíte získat přístup.

  3. Zadejte následující příkaz ke čtení textového souboru s mezerami v názvu:
    kočka 'název souboru.txt'

    nebo

    kočka 'název souboru.txt'

    Pomocí nabídek se vyhnete mezerám v chybě názvu

  4. Jednoduché a dvojité nabídky budou mít za následek stejné. V některých případech musíte vyzkoušet obojí a zjistit, který z nich funguje.

Metoda 2: Použití znaku úniku vůle

  1. Držet Ctrl + Alt kláves a stiskněte T otevřít Terminál .
  2. Pomocí následujícího příkazu změňte adresář, kde je soubor umístěn.
    cd Desktop

    Poznámka : Vložte název vaší polohy na místo plochy.

  3. Nyní zadejte příkaz a použijte uniknout znak kdekoli je v názvu mezera:
    kočičí soubor  name.txt

    Použití znaku escape, aby se zabránilo chybě mezery

Bonus: Využití nabídek a únik

Někdy, když používáte adresář v příkazu, mohou mít důsledky použití citací na celkové cestě. Je to proto, že některé příkazy jako „ mv ‚Nebo‘ str „Zváží cestu jako zdroj souboru pokud je nabídka použita jako celek. Musíte uvést nabídky pro oba zdroj a destinace jednotlivě, takže příkazy jako „ str „Může fungovat správně. 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é se s ním mohou mýlit.

Rozdíl mezi citacemi a znakem escape

2 minuty čtení