Cum să gestionați trecerea numelor de fișiere cu spații în baș

Linux are un shell standard Bash (aka Bourne din nou shell) pentru a executa comenzi pentru sistem. Majoritatea programatorilor preferă bash peste cmd din cauza flexibilității și a interpretului puternic de linie de comandă pe care îl oferă bash. Cu toate acestea, majoritatea utilizatorilor vor avea în continuare probleme în timp ce încearcă să se ocupe de trecerea numelor de fișiere cu spații în bash. Acest lucru se datorează faptului că spațiile nu sunt considerate la fel în bash, așa cum sunt în nume de fișiere.

Fișiere cu spații în nume

De ce numele de fișier cu spațiile nu este recunoscut de Bash?

În Bash, dacă tastați mai multe cuvinte fără caracter de scăpare (\) sau citate, acesta va considera toate cuvintele ca argumente. Aceasta se aplică pentru toate operațiunile, fie că schimbați directorul cu „ cd ”, fie că încercați să accesați fișierele cu comenzile „ cat ”. Orice scriere după ce le-ați utilizat va fi considerat argument. De exemplu:

 numele fișierului pisică.txt 

Executați comanda fără a utiliza caracterul de evacuare sau cotațiile

Notă : Numele dvs. de fișier poate fi orice, dar pentru acest articol, vom folosi ca exemplu „ file name.txt ”.

Aici comanda „ pisică ” va considera fișierul și numele ca fiind două argumente, mai degrabă decât un singur argument. Cu toate acestea, dacă utilizați caracter de scăpare sau citate, atunci bash shell va considera asta ca un singur argument, care va fi „ nume de fișier.txt ”.

Numele fișierului cu Spaces în Bash

Există câteva metode care pot fi utilizate pentru spațiile din nume. Cea mai bună practică este evitarea spațiilor pentru numele fișierelor în viitor. O metodă simplă va fi redenumirea fișierului pe care încercați să accesați și să eliminați spațiile. Unele alte metode folosesc citate simple sau duble pe numele fișierului cu spații sau folosind simbolul escape (\) chiar înainte de spațiu. Vom oferi metode cu exemple aplicate pentru a vă arăta cum funcționează.

Metoda 1: Utilizarea cotațiilor simple și duble

  1. Țineți tastele Ctrl + Alt și apăsați T pentru a deschide terminalul .
  2. Acum schimbați directorul la locul în care se află fișierul.

    (de asemenea, puteți trage și arunca fișierul în terminal după comanda „ pisică ”, care va pune automat cotații pe calea / directorul fișierului)

     CD Desktop 

    Schimbarea directorului

    Notă : Desktop poate fi schimbat în locația la care încercați să accesați.

  3. Tastați următoarea comandă pentru a citi un fișier text cu spații în nume:
     pisica „nume de fișier.txt” 

    sau

     pisica "nume de fișier.txt" 

    Utilizarea cotațiilor pentru a evita spațiile în eroarea numelui
  4. Cotații simple și duble vor rezulta la fel. În unele cazuri, trebuie să încercați ambele și să vedeți care funcționează.

Metoda 2: Utilizarea caracterului de scăpare din spate

  1. Țineți tastele Ctrl + Alt și apăsați T pentru a deschide terminalul .
  2. Schimbați directorul în locul unde se află fișierul folosind următoarea comandă.
     CD Desktop 

    Notă : Puneți numele locației în locul desktopului.

  3. Acum tastați comanda și folosiți caracterul de evacuare oriunde există spațiu în nume:
     fișier pisică \ nume.txt 

    Utilizarea caracterului escape pentru a evita eroarea spațiilor

Bonus: Utilizarea cotațiilor și evadarea

Uneori, când utilizați directorul din comandă, pot exista consecințe pentru utilizarea cotațiilor pe calea generală. Acest lucru se datorează faptului că unele comenzi de genul „ mv ” sau „ cp ” vor considera calea ca sursă de fișier dacă cotația este folosită integral. Trebuie să furnizați cotații atât pentru sursă, cât și pentru destinație individual, astfel încât comenzile precum ' cp ' să funcționeze corect. Puteți verifica, de asemenea, exemplul de mai jos care vă va arăta că folosirea caracterului de evacuare pentru traseu este mult mai complexă, iar utilizatorii pot face greșeli cu aceasta.

Diferența dintre cotații și caracterul de evadare

Articole Interesante