Hvordan håndtere passerende filnavn med mellomrom i Bash

Linux har et standard skall Bash (aka Bourne igjen skall) for å utføre kommandoer for systemet. De fleste programmerere foretrekker bash over cmd på grunn av fleksibiliteten og den kraftige kommandolinjetolken som bash gir. Imidlertid vil de fleste brukere fremdeles ha problemer når de prøver å håndtere bestått filnavn med mellomrom i bash. Dette er fordi mellomrom ikke betraktes som de samme i bash som de er i filnavn.

Hvorfor gjenkjennes ikke filnavn med mellomrom av Bash?

I Bash, hvis du skriver flere ord uten flukt tegn (\) eller sitater, vil den betrakte alle ordene som argumenter. Det gjelder for 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 sett på som et argument. For eksempel:

kattens filnavn.txt

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

Her ‘katt‘Kommando vil vurdere fil og Navn som to argumenter i stedet for et enkelt argument. Imidlertid, hvis du bruker escape-karakter eller sitater, vil bash shell betrakte det som et enkelt argument, som vil være "filnavn.txt“.

Filnavn med Spaces in 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 sitater på filnavnet med mellomrom eller bruker escape (\) -symbolet rett før mellomrommet. Vi vil gi metoder med anvendte eksempler for å vise deg hvordan det fungerer.

Metode 1: Bruke enkle og doble tilbud

  1. Holde Ctrl + Alt tastene og trykk T å åpne Terminal.
  2. Bytt nå katalogen til hvor filen ligger.

    (du kan også dra og miste filen i terminalen etter kommandoen ‘katt‘, Som automatisk vil sette sitater på filstien / katalogen)

    cd Desktop

    Merk: Desktop 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"
  4. Enkelt og dobbelt tilbud vil resultere i det samme. I noen tilfeller må du prøve begge og se hvilken som fungerer.

Metode 2: Bruke Backlash Escape Character

  1. Holde Ctrl + Alt tastene og trykk T å åpne Terminal.
  2. Endre katalogen til hvor filen ligger ved å bruke følgende kommando.
    cd Desktop

    Merk: Sett plasseringsnavnet ditt i stedet for skrivebordet.

  3. Skriv inn kommandoen og bruk flukt tegn hvor som helst det er plass i navnet:
    kattfil \ name.txt

Bonus: Bruk av tilbud og flukt

Noen ganger når du bruker katalogen i kommandoen, kan det få konsekvenser for å bruke sitater på den generelle banen. Dette er fordi noen kommandoer som ‘mv‘Eller‘cp‘Vil vurdere stien som filkilde hvis tilbudet brukes i det hele tatt. Du må gi tilbud på begge deler kilde og mål individuelt slik at kommandoer som ‘cp‘Kan fungere skikkelig. Du kan også sjekke eksemplet nedenfor som viser deg at bruk av escape-karakter for banen er mye mer komplisert, og brukere kan gjøre feil med det.


$config[zx-auto] not found$config[zx-overlay] not found