Jak zacházet s předáváním názvů souborů mezerami v rozbití
Linux má výchozí shell Bash (alias Bourne again shell) pro provádění příkazů pro systém. Většina programátorů preferuje bash před cmd kvůli flexibilitě a výkonnému interpretu 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 řešení předávání názvů souborů mezerami v bashu. Důvodem je, že mezery nejsou v bash považovány za stejné jako v názvech souborů.
Proč Bash nerozpoznal název souboru s mezerami?
Pokud v Bashu zadáte více slov bez znaku escape (\) nebo uvozovek, budou všechna slova považována za argumenty. To platí pro všechny operace, ať už měníte adresář pomocí ' cd ' nebo se pokoušíte získat přístup k souborům pomocí ' cat ' příkazů. Vše, co píšete po jejich použití, 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 libovolný, ale pro tento článek použijeme jako příklad „ file name.txt “.
Příkaz ' cat ' bude považovat soubor a jméno spíše za dva argumenty než za jediný argument. Pokud však použijete znak escape nebo uvozovky, bash shell to bude považovat za jediný argument, kterým bude „ file name.txt “.
Název souboru s mezerami v Bash
Existuje několik metod, které lze použít pro mezery v názvu. Nejlepší praxí je vyhnout se mezerám pro názvy souborů v budoucnu. Jednoduchou metodou bude přejmenování souboru, ke kterému se pokoušíte získat přístup a odstranění mezer. Některé jiné metody používají jednoduché nebo dvojité nabídky na názvu souboru s mezerami nebo pomocí 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ých a dvojitých nabídek
- Podržte klávesy Ctrl + Alt a stisknutím klávesy T otevřete terminál .
- Nyní změňte adresář na místo, kde je soubor umístěn.
(Můžete také přetáhnout soubor do terminálu za příkaz ' cat ', který automaticky umístí citace na cestu / adresář souboru)
cd desktop
Změna adresáře Poznámka : Desktop lze změnit na místo, ke kterému se pokoušíte přistupovat.
- Chcete-li číst textový soubor s mezerami v názvu, zadejte následující příkaz:
cat 'file name.txt'
nebo
kočka "file name.txt"
Pomocí nabídek se vyhnete mezerám v chybě názvu - Výsledkem jednoduchých a dvojitých nabídek bude totéž. V některých případech je třeba vyzkoušet oba a zjistit, který z nich funguje.
Metoda 2: Použití znaku Escape
- Podržte klávesy Ctrl + Alt a stisknutím klávesy T otevřete terminál .
- Pomocí následujícího příkazu změňte adresář, do kterého je soubor umístěn.
cd desktop
Poznámka : Místo plochy umístěte název místa.
- Nyní zadejte příkaz a použijte znak escape, kdekoli je v názvu místo:
soubor cat \ name.txt
Pomocí znaku escape se vyhnete chybě mezer
Bonus: Využití nabídek a útěku
Někdy, když používáte adresář v příkazu, mohou mít důsledky pro použití nabídek na celkové cestě. Důvodem je to, že některé příkazy jako ' mv ' nebo ' cp ' považují cestu za zdroj souboru, pokud je nabídka použita jako celek. Musíte zadat nabídky pro zdroj i cíl jednotlivě, aby příkazy jako ' cp ' mohly správně fungovat. 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é s ním mohou udělat chybu.