Sådan håndteres passerende filnavne med mellemrum i Bash

Linux har en standard shell Bash (aka Bourne igen shell) til at udføre kommandoer til systemet. De fleste programmører foretrækker bash over cmd på grund af den fleksibilitet og kraftfulde kommandolinjetolker, som bash giver. Imidlertid vil de fleste brugere stadig have problemer, mens de prøver at håndtere passerende filnavne med mellemrum i bash. Dette skyldes, at mellemrum ikke betragtes som de samme i bash, da de er i filnavne.

Hvorfor genkendes filnavn med mellemrum ikke af Bash?

I Bash, hvis du skriver flere ord uden flugt tegn (\) eller tilbud, vil det betragte alle ordene som argumenter. Det gælder for alle operationer, uanset om du skifter bibliotek med 'cd'Eller forsøger at få adgang til filer med'kat'Kommandoer. Alt, hvad du skriver efter at have brugt disse, betragtes som et argument. For eksempel:

katfilnavn.txt

Bemærk: Dit filnavn kan være alt andet end til denne artikel bruger vi “filnavn.txt" som et eksempel.

Her 'kat'Kommando vil overveje fil og navn som to argumenter snarere end et enkelt argument. Men hvis du bruger flugttegn eller citater, vil bash shell betragte det som et enkelt argument, som vil være “filnavn.txt“.

Filnavn med mellemrum i bash

Der er få metoder, der kan bruges til mellemrummet i navnet. Den bedste praksis er at undgå mellemrum til filnavne i fremtiden. En enkel metode vil være at omdøbe den fil, som du prøver at få adgang til og fjerne mellemrum. Nogle andre metoder bruger enkelt eller dobbelt citater på filnavnet med mellemrum eller ved hjælp af escape (\) symbol lige før pladsen. Vi leverer metoder med anvendte eksempler for at vise dig, hvordan det fungerer.

Metode 1: Brug af enkelt- og dobbelt tilbud

  1. Holde Ctrl + Alt taster og tryk på T at åbne Terminal.
  2. Skift nu mappe til hvor filen er placeret.

    (du kan også træk og dråbe filen i terminalen efter kommandoen “kat‘, Som automatisk sætter tilbud på filstien / kataloget)

    cd Desktop

    Bemærk: Desktop kan ændres til det sted, du prøver at få adgang til.

  3. Skriv følgende kommando for at læse en tekstfil med mellemrum i navnet:
    kat 'filnavn.txt'

    eller

    kat "filnavn.txt"
  4. Enkelt og dobbelt tilbud vil resultere i det samme. I nogle tilfælde skal du prøve begge og se, hvilken der fungerer.

Metode 2: Brug af Backlash Escape Character

  1. Holde Ctrl + Alt taster og tryk på T at åbne Terminal.
  2. Skift biblioteket, hvor filen er placeret, ved hjælp af følgende kommando.
    cd Desktop

    Bemærk: Sæt dit placeringsnavn i stedet for Desktop.

  3. Skriv nu kommandoen og brug flugt tegn hvor som helst der er plads i navnet:
    kattefil \ name.txt

Bonus: Brug af tilbud og flugt

Nogle gange, når du bruger biblioteket i kommandoen, kan der være konsekvenser for at bruge tilbud på den samlede sti. Dette skyldes, at nogle kommandoer som 'mv'Eller'cp'Vil betragte stien som filkilde hvis tilbudet anvendes i det hele taget. Du skal give tilbud på begge dele kilde og bestemmelsessted individuelt, så kommandoer som 'cp'Kan fungere ordentligt. Du kan også kontrollere eksemplet nedenfor, som viser dig, at brugen af ​​escape-karakter til stien er meget mere kompleks, og brugere kan begå fejl med det.