Hur man hanterar passerande filnamn med mellanslag i Bash



Prova Vårt Instrument För Att Eliminera Problem

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



Filer med mellanslag i namnet



Varför känns inte filnamn med mellanslag igen av Bash?

I Bash, om du skriver flera ord utan fly tecken () eller offert kommer det att betrakta alla orden som argument. Det gäller för alla operationer, oavsett om du ändrar katalog med ' CD 'Eller försöker komma åt filer med' katt 'Kommandon. Allt du skriver efter att du har använt dessa kommer att betraktas som ett argument. Till exempel:



kattfilnamn.txt

Köra kommandot utan att använda escape-karaktär eller citat

Notera : Ditt filnamn kan vara allt annat än för den här artikeln kommer vi att använda “ filnamn.txt ' som ett exempel.

Här ‘ katt 'Kommando kommer att överväga fil och namn som två argument snarare än ett enda argument. Men om du använder escape-karaktär 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 mellanslag i namnet. Den bästa metoden ä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 utrymmen. Några andra metoder använder enkla eller dubbla citat på filnamnet med mellanslag eller använder escape () symbol strax före utrymmet. Vi kommer att tillhandahålla metoder med tillämpade exempel för att visa dig hur det fungerar.

Metod 1: Använda enkla och dubbla citat

  1. Håll Ctrl + Alt och tryck på T att öppna Terminal .
  2. Byt nu katalog där filen finns.
    (du kan också drag och släppa filen i terminalen efter kommandot ” katt ”, Som automatiskt lägger offert på filvägen / katalogen)

    cd Desktop

    Ändrar katalog

    Notera : 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 citat för att undvika mellanslag i namnfel

  4. Enstaka och dubbla offert kommer att resultera i samma. I vissa fall måste du prova båda och se vilken som fungerar.

Metod 2: Använd Backlash Escape Character

  1. Håll Ctrl + Alt och tryck på T att öppna Terminal .
  2. Ändra katalogen till där filen finns med hjälp av följande kommando.
    cd Desktop

    Notera : Sätt ditt platsnamn istället för Desktop.

  3. Skriv nu kommandot och använd fly karaktär var som helst det finns utrymme i namnet:
    kattfil  name.txt

    Använd Escape-karaktär för att undvika mellanslag

Bonus: Användning av offert och flykt

Ibland när du använder katalogen i kommandot kan det få konsekvenser för att använda citat på den totala sökvägen. Detta beror på att vissa kommandon som ” mv 'Eller' cp ”Kommer att betrakta vägen som filkälla om offerten används i sin helhet. Du måste ange offert för båda källa och destination individuellt så att kommandon som ” cp Kan fungera ordentligt. Du kan också kontrollera exemplet nedan som visar att användning av escape-karaktär för sökvägen är mycket mer komplex och användare kan göra misstag med den.

Skillnaden mellan citat och flyktkaraktär

2 minuter läst