Hoe om te gaan met het doorgeven van bestandsnamen met spaties in Bash

Linux heeft een standaard shell Bash (ook bekend als Bourne opnieuw shell) om opdrachten voor het systeem uit te voeren. De meeste programmeurs geven de voorkeur aan bash boven cmd vanwege de flexibiliteit en krachtige opdrachtregelinterpreter die bash biedt. De meeste gebruikers zullen echter nog steeds problemen ondervinden bij het omgaan met het doorgeven van bestandsnamen met spaties in bash. Dit komt omdat spaties niet als bash worden beschouwd als in bestandsnamen.

Bestanden met spaties in de naam

Waarom wordt Bestandsnaam met spaties niet herkend door Bash?

Als u in Bash meerdere woorden typt zonder escape- teken (\) of aanhalingstekens, worden alle woorden als argumenten beschouwd. Dat geldt voor alle bewerkingen, of u nu van map verandert met ' cd ' of probeert toegang te krijgen tot bestanden met ' cat' -commando's. Alles wat u schrijft nadat u deze hebt gebruikt, wordt als een argument beschouwd. Bijvoorbeeld:

 cat bestandsnaam.txt 

De opdracht uitvoeren zonder escape-teken of citaten te gebruiken

Opmerking : uw bestandsnaam kan van alles zijn, maar voor dit artikel gebruiken we " bestandsnaam.txt " als voorbeeld.

Hier zal de opdracht ' cat ' bestand en naam als twee argumenten beschouwen in plaats van als een enkel argument. Als u echter een escape-teken of citaten gebruikt, beschouwt bash shell dat als een enkel argument, dat de " bestandsnaam.txt " zal zijn.

Bestandsnaam met spaties in Bash

Er zijn enkele methoden die kunnen worden gebruikt voor de spaties in de naam. De beste methode is om in de toekomst geen spaties te gebruiken voor bestandsnamen. Een eenvoudige methode is het hernoemen van het bestand dat u probeert te openen en spaties te verwijderen. Sommige andere methoden gebruiken enkele of dubbele aanhalingstekens op de bestandsnaam met spaties of gebruiken het escape (\) symbool vlak voor de spatie. We zullen methoden voorzien van toegepaste voorbeelden om u te laten zien hoe het werkt.

Methode 1: Enkele en dubbele offertes gebruiken

  1. Houd Ctrl + Alt- toetsen ingedrukt en druk op T om Terminal te openen.
  2. Verander nu de map naar waar het bestand zich bevindt.

    (u kunt het bestand ook slepen en neerzetten in de terminal na het commando ' cat ', dat automatisch citaten op het bestandspad / de map plaatst)

     cd Desktop 

    Directory wijzigen

    Opmerking : Desktop kan worden gewijzigd in de locatie die u probeert te openen.

  3. Typ de volgende opdracht om een ​​tekstbestand met spaties in de naam te lezen:
     cat 'bestandsnaam.txt' 

    of

     cat "bestandsnaam.txt" 

    Citaten gebruiken om spaties in naamfouten te voorkomen
  4. Enkele en dubbele offertes resulteren in hetzelfde. In sommige gevallen moet u beide proberen en zien welke werkt.

Methode 2: Gebruik Backlash Escape Character

  1. Houd Ctrl + Alt- toetsen ingedrukt en druk op T om Terminal te openen.
  2. Wijzig de map in waar het bestand zich bevindt met behulp van de volgende opdracht.
     cd Desktop 

    Opmerking : plaats uw locatienaam in plaats van Desktop.

  3. Typ nu de opdracht en gebruik het escape- teken overal waar ruimte in de naam voorkomt:
     cat file \ name.txt 

    Escape-teken gebruiken om spaties te voorkomen

Bonus: gebruik van offertes en Escape

Soms wanneer u de map in de opdracht gebruikt, kunnen er gevolgen zijn voor het gebruik van citaten in het algemene pad. Dit komt omdat sommige commando's zoals ' mv ' of ' cp ' het pad als bestandsbron zullen beschouwen als het citaat in zijn geheel wordt gebruikt. U moet offertes voor zowel bron als bestemming afzonderlijk opgeven, zodat opdrachten zoals ' cp ' correct kunnen werken. Je kunt ook het onderstaande voorbeeld bekijken, dat je laat zien dat het gebruik van het escape-teken voor het pad veel complexer is en dat gebruikers er fouten mee kunnen maken.

Het verschil tussen citaten en ontsnappingskarakter

Interessante Artikelen