Hvordan håndtere passerende filnavn med mellomrom i Bash



Prøv Instrumentet Vårt For Å Eliminere Problemer

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.



Filer med mellomrom i navnet



Hvorfor gjenkjennes ikke filnavn med mellomrom av Bash?

I Bash, hvis du skriver flere ord uten flukt tegn () eller sitater , vil det 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

Kjører kommandoen uten å bruke escape-tegn eller sitater

Merk : Filnavnet ditt kan være alt annet enn for denne artikkelen, bruker vi “ 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

    Endrer katalog

    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'

    Bruke sitater for å unngå mellomrom i navnefeil

  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

    Bruker rømningstegn 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 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-tegn for banen er mye mer komplisert, og brukere kan gjøre feil med det.

Forskjellen mellom sitater og fluktkarakter

2 minutter lest