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

Linux har en standard shell Bash (også kaldet Bourne igen shell) til at udføre kommandoer til systemet. De fleste programmerere foretrækker bash frem for cmd på grund af fleksibiliteten og den kraftige kommandolinjetolk, som bash giver. De fleste brugere vil dog 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 som i filnavne.

Filer med mellemrum i navnet

Hvorfor filnavn med rum genkendes ikke af Bash?

I Bash, hvis du skriver flere ord uden flugtegn (\) eller citater, 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 vil blive betragtet som et argument. For eksempel:

 kat fil navn.txt 

Kør kommandoen uden at bruge flugtegn eller citater

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

Her vil " kat " -kommandoen betragte fil og navn som to argumenter snarere end et enkelt argument. Hvis du bruger flugtegn eller citater, betragter bash shell det imidlertid som et enkelt argument, der vil være " filnavn.txt ".

Filnavn med mellemrum i Bash

Der er få metoder, der kan bruges til mellemrum i navnet. Den bedste praksis er at undgå mellemrum til filnavne i fremtiden. En enkel metode vil være at omdøbe filen, 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 mellemrummet. Vi leverer metoder med anvendte eksempler for at vise dig, hvordan det fungerer.

Metode 1: Brug af enkelt- og dobbeltnoteringer

  1. Hold Ctrl + Alt nede, og tryk på T for at åbne terminal .
  2. Skift nu bibliotek til hvor filen ligger.

    (du kan også trække og slippe filen i terminalen efter kommandoen ' kat ', der automatisk sætter citater på filstien / biblioteket)

     cd skrivebord 

    Ændrer bibliotek

    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" 

    Brug af tilbud for at undgå mellemrum i navnefejl
  4. Enkelt- og dobbeltnoteringer vil resultere i det samme. I nogle tilfælde skal du prøve begge dele og se, hvilken der fungerer.

Metode 2: Brug af Backlash Escape-karakter

  1. Hold Ctrl + Alt nede, og tryk på T for at åbne terminal .
  2. Skift kataloget, hvor filen er placeret ved hjælp af følgende kommando.
     cd skrivebord 

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

  3. Skriv nu kommandoen og brug flugtegn hvor som helst der er plads i navnet:
     kattefil \ navn.txt 

    Brug af flugtegn for at undgå mellemrumfejl

Bonus: Brug af tilbud og flugt

Undertiden når du bruger kataloget i kommandoen, kan det have konsekvenser for at bruge citater på den samlede sti. Dette skyldes, at nogle kommandoer som ' mv ' eller ' cp ' betragter stien som filkilde, hvis citatet bruges i det hele. Du skal angive tilbud for både kilde og destination individuelt, så kommandoer som ' cp ' kan fungere korrekt. Du kan også kontrollere eksemplet herunder, som viser dig, at brug af flugtegn til stien er meget mere kompliceret, og brugere kan begå fejl med det.

Forskellen mellem citater og flugtkarakter

Interessante Artikler