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.

Nimes tühikutega failid

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 

Käsu käitamine ilma põgenemismärki või tsitaate kasutamata

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

  1. Hoidke all klahve Ctrl + Alt ja vajutage T, et terminali avada.
  2. 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.

  3. 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
  4. Ü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

  1. Hoidke all klahve Ctrl + Alt ja vajutage T, et terminali avada.
  2. Järgmise käsu abil saate muuta kataloogi faili asukohaks.
     cd töölaud 

    Märkus . Pange oma töökoha nimi töölaua asemele.

  3. 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.

Erinevus tsitaatide ja põgenemismärgi vahel

Huvitavad Artiklid