Hvordan håndtere passerende filnavn med mellomrom i bash

Linux har et standard shell Bash (også kjent som Bourne shell igjen) for å utføre kommandoer for systemet. De fleste programmerere foretrekker bash fremfor cmd på grunn av fleksibiliteten og den kraftige kommandolinjetolken som bash gir. Imidlertid vil de fleste brukere fortsatt ha problemer mens de prøver å håndtere passerende filnavn med mellomrom i bash. Dette er fordi mellomrom ikke anses som de samme i bash som de er i filnavn.

Filer med mellomrom i navnet

Hvorfor filnavn med mellomrom blir ikke gjenkjent av Bash?

I Bash, hvis du skriver flere ord uten rømningstegn (\) eller sitater, vil det betrakte alle ordene som argumenter. Det gjelder alle operasjoner, enten du endrer katalog med ' cd ' eller prøver å få tilgang til filer med ' katt ' -kommandoer. Alt du skriver etter å ha brukt disse vil bli betraktet som et argument. For eksempel:

 kattfilnavn.txt 

Kjører kommandoen uten å bruke fluktkarakter eller sitater

Merk : Filnavnet ditt kan være alt annet enn for denne artikkelen, vi bruker " filnavn.txt " som eksempel.

Her " katt " -kommando vil betrakte fil og navn som to argumenter i stedet for et enkelt argument. Imidlertid, hvis du bruker fluktkarakter eller sitater, vil bash shell vurdere det som et enkelt argument, som vil være " filnavn.txt ".

Filnavn med mellomrom i Bash

Det er få metoder som kan brukes til mellomrommene i navnet. Den beste fremgangsmåten er å unngå mellomrom for filnavn i fremtiden. En enkel metode vil være å gi nytt navn til filen du prøver å få tilgang til og fjerne mellomrom. Noen andre metoder bruker enkle eller doble anførselstegn på filnavnet med mellomrom eller ved å bruke escape-symbolet (\) rett foran mellomrommet. Vi vil gi metoder med anvendte eksempler for å vise deg hvordan det fungerer.

Metode 1: Bruke enkelt- og dobbeltnoteringer

  1. Hold Ctrl + Alt- tastene og trykk T for å åpne terminal .
  2. Nå bytter du katalog til filen ligger.

    (du kan også dra og slippe filen i terminalen etter kommandoen ' katt ', som automatisk vil sette sitater på filstien / katalogen)

     cd Desktop 

    Skifter katalog

    Merk : Skrivebordet kan endres til stedet du prøver å få tilgang til.

  3. Skriv inn følgende kommando for å lese en tekstfil med mellomrom i navnet:
     katt 'filnavn.txt' 

    eller

     katt "filnavn.txt" 

    Bruker sitater for å unngå mellomrom i navnefeil
  4. Enkelt- og dobbeltnoteringer vil resultere i det samme. I noen tilfeller må du prøve begge deler og se hvilken som fungerer.

Metode 2: Bruke Backlash Escape Character

  1. Hold Ctrl + Alt- tastene og trykk T for å åpne terminal .
  2. Endre katalogen der filen ligger, ved å bruke følgende kommando.
     cd Desktop 

    Merk : Plasser stedsnavnet i stedet for Desktop.

  3. Skriv nå kommandoen og bruk flukt- karakter hvor som helst det er plass i navnet:
     kattfil \ navn.txt 

    Bruk fluktkarakter for å unngå mellomromfeil

Bonus: Bruk av tilbud og flukt

Noen ganger når du bruker katalogen i kommandoen, kan det få konsekvenser for å bruke sitater på den totale banen. Dette er fordi noen kommandoer som ' mv ' eller ' cp ' vil betrakte banen som filkilde hvis tilbudet blir brukt i sin helhet. Du må oppgi tilbud for både kilde og destinasjon hver for seg, slik at kommandoer som ' cp ' kan fungere ordentlig. Du kan også sjekke eksemplet nedenfor som viser deg at bruk av fluktkarakter for banen er mye mer komplisert og brukere kan gjøre feil med det.

Forskjellen mellom sitater og fluktkarakter

Interessante Artikler