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
- Držet Ctrl + Alt kláves a stiskněte T otevřít Terminál .
- 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.
- 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
- 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
- Držet Ctrl + Alt kláves a stiskněte T otevřít Terminál .
- 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.
- 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í