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.
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
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
- Håll Ctrl + Alt- tangenterna och tryck på T för att öppna terminal .
- Ä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.
- 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 - 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
- Håll Ctrl + Alt- tangenterna och tryck på T för att öppna terminal .
- Ändra katalogen till var filen finns med följande kommando.
cd Desktop
Obs! Sätt ditt platsnamn i stället för skrivbordet.
- 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.