Kuidas käsitseda failinimede edastamist tühikutega bassis
Linuxil on süsteemi käskude täitmiseks vaikimisi kest Bash (aka Bourne jälle shell). Enamik programmeerijaid eelistab bashi üle cmd-d bashi pakutava paindlikkuse ja võimsa käsureatõlgi tõttu. Enamikul kasutajatel on siiski probleeme, kui nad üritavad hallata failinimesid tühikutega bash. Selle põhjuseks on asjaolu, et tühikuid ei peeta bash-iga samadeks kui failinimesid.
Miks Bash ei tuvasta tühikutega failinime?
Kui kirjutate Bashis mitu sõna ilma põgenemismärgi (\) või jutumärkideta, loeb see kõiki sõnu argumentideks. See kehtib kõigi toimingute kohta, olenemata sellest, kas muudate kataloogi ' cd ' abil või proovite pääseda failidele käskudega ' kass '. Kõik, mis pärast nende kasutamist kirjutate, loetakse argumendiks. Näiteks:
kassi faili nimi.txt
Märkus . Teie failinimi võib olla ükskõik, kuid selle artikli puhul kasutame näitena faili nime.txt .
Siin käsitab " kass " käsk faili ja nime kahe argumendina, mitte ühe argumendina. Kui aga kasutate põgenemismärki või tsitaate, loeb bash shell seda ühe argumendina, milleks on “ faili nimi.txt ”.
File name with Spaces in Bash
Nimes olevate tühikute jaoks saab kasutada vähe meetodeid. Parim tava on tulevikus failinimedele tühikute vältimine. Lihtne meetod on faili ümbernimetamine, millele proovite juurde pääseda, ja tühikute eemaldamine. Mõne muu meetodi korral kasutatakse failinimes tühikutega ühe- või kahekohalisi tsitaate tühikutega või sümboli põgenemise (\) kasutamist vahetult enne tühikut. Pakume meetodeid rakendatud näidetega, et näidata teile, kuidas see töötab.
1. meetod: ühe- ja kahekordsete tsitaatide kasutamine
- Hoidke all klahve Ctrl + Alt ja vajutage T, et terminali avada.
- Nüüd muutke kataloog faili asukoha järgi.
(faili saab terminlisse lohistada ka pärast käsku ' kass ', mis paneb faili teele / kataloogi automaatselt tsitaadid)
cd töölaud
Kataloogi muutmine Märkus . Töölaua saab muuta asukohta, millele proovite juurde pääseda.
- Tippige järgmine käsk, et lugeda nime tühikutega tekstifaili:
kass 'faili nimi.txt'
või
kass "faili nimi.txt"
Tsitaatide kasutamine nimivigade tühikute vältimiseks - Ühe- ja kahekordse pakkumise tulemus on sama. Mõnel juhul peate proovima mõlemat ja vaadata, milline neist töötab.
2. meetod: tagasilöögimärgi kasutamine
- Hoidke all klahve Ctrl + Alt ja vajutage T, et terminali avada.
- Järgmise käsu abil saate muuta kataloogi faili asukohaks.
cd töölaud
Märkus . Pange oma töökoha nimi töölaua asemele.
- Tippige käsk ja kasutage tähemärki escape, kus nimel on ruumi:
kassifail \ nimi.txt
Põgenemismärgi kasutamine tühikute tõrke vältimiseks
Boonus: tsitaatide ja põgenemise kasutamine
Mõnikord, kui kasutate käsku kataloogi, võib tsitaatide kasutamisel üldisel teel olla tagajärgi. Selle põhjuseks on asjaolu, et mõned käsud, näiteks ' mv ' või ' cp ', käsitlevad teed failiallikana, kui tsitaati kasutatakse tervikuna. Nii lähte- kui ka sihtkohapakkumised tuleb eraldi esitada, et sellised käsud nagu cp saaksid korralikult töötada. Võite vaadata ka allolevat näidet, mis näitab teile, et põgenemismärgi kasutamine teel on palju keerulisem ja kasutajad saavad sellega viga teha.