Jak zacházet s předáváním názvů souborů s mezerami v Bash
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ů.
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
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
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"
- 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.
- Změňte adresář na místo, kde je soubor umístěn, pomocí následujícího příkazu.
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
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 příklad níže, 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.