Hur man hanterar passerande filnamn med mellanslag i Bash

Linux har ett standard skal 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 passerande filnamn med mellanslag i bash. Detta beror på att mellanslag inte anses vara desamma i bash som i filnamn.

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

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 kommer att lägga offert på filvägen / katalogen)

    cd Desktop

    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"
  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

Bonus: Användning av offert och fly

Ibland när du använder katalogen i kommandot kan det få konsekvenser för att använda offert 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 ”cpKan 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.

Facebook Twitter Google Plus Pinterest