Hur man hanterar vidarebefordrade filnamn med mellanslag i bash

Linux har ett standardskal Bash (aka Bourne igen skal) för att utföra kommandon för systemet. De flesta programmerare föredrar bash framför cmd på grund av flexibiliteten och kraftfulla kommandoradstolkar som bash ger. De flesta användare kommer emellertid fortfarande att ha problem när de försöker hantera passera filnamn med mellanslag i bash. Detta beror på att mellanslag inte anses vara samma i bash som i filnamn.

Filer med mellanslag i namnet

Varför filnamn med utrymmen inte erkänns av Bash?

Om du skriver flera ord utan undantagstecken (\) eller citat i Bash kommer det att betrakta alla orden som argument. Det gäller alla operationer, oavsett om du byter katalog med ' cd ' eller försöker komma åt filer med ' katt ' -kommandon. Allt du skriver efter att ha använt dessa kommer att betraktas som ett argument. Till exempel:

 kattfilnamn.txt 

Kör kommandot utan att använda flyktecken eller citat

Obs! Ditt filnamn kan vara allt annat än för den här artikeln kommer vi att använda " filnamn.txt " som exempel.

Här " katt " -kommando kommer att betrakta fil och namn som två argument snarare än ett enda argument. Men om du använder flyktecken eller citat kommer bash shell att betrakta det som ett enda argument, vilket kommer att vara " filnamn.txt ".

Filnamn med mellanslag i bash

Det finns få metoder som kan användas för utrymmena i namnet. Den bästa praxisen är att undvika utrymmen för filnamn i framtiden. En enkel metod är att byta namn på filen som du försöker komma åt och ta bort mellanslag. Vissa andra metoder använder enstaka eller dubbla citat på filnamnet med mellanslag eller med hjälp av escape (\) -symbolen strax före mellanslag. Vi kommer att tillhandahålla metoder med tillämpade exempel för att visa hur det fungerar.

Metod 1: Använd enstaka och dubbla offert

  1. Håll Ctrl + Alt- tangenterna och tryck på T för att öppna terminal .
  2. Ändra nu katalogen till där filen finns.

    (du kan också dra och släppa filen i terminalen efter kommandot " katt ", som automatiskt sätter offertar på filvägen / katalogen)

     cd Desktop 

    Ändrar katalog

    Obs! Skrivbordet kan ändras till den plats du försöker komma åt.

  3. Skriv följande kommando för att läsa en textfil med mellanslag i namnet:
     katt "filnamn.txt" 

    eller

     katt "filnamn.txt" 

    Använd offert för att undvika mellanslag i namnfel
  4. Enstaka och dubbla offertar kommer att resultera i samma sak. I vissa fall måste du prova båda och se vilken som fungerar.

Metod 2: Använda Backlash Escape-karaktär

  1. Håll Ctrl + Alt- tangenterna och tryck på T för att öppna terminal .
  2. Ändra katalogen till var filen finns med följande kommando.
     cd Desktop 

    Obs! Sätt ditt platsnamn i stället för skrivbordet.

  3. Skriv nu kommandot och använd escape- karaktär var som helst det finns utrymme i namnet:
     kattfil \ namn.txt 

    Använd flyktecken för att undvika mellanslagsfel

Bonus: Användning av offertar och flykt

Ibland när du använder katalogen i kommandot kan det få konsekvenser för att använda offert på den övergripande sökvägen. Detta beror på att vissa kommandon som ' mv ' eller ' cp ' kommer att betrakta sökvägen som filkälla om offerten används som helhet. Du måste ange offert för både källa och destination individuellt så att kommandon som ' cp ' kan fungera korrekt. Du kan också kontrollera exemplet nedan som visar att användning av flygtecken för sökvägen är mycket mer komplex och användare kan göra misstag med det.

Skillnaden mellan citat och flyktecken

Intressanta Artiklar