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



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Linux are un shell implicit Bash (aka Bourne din nou shell) pentru a executa comenzi pentru sistem. Majoritatea programatorilor preferă bash peste cmd datorită flexibilității și interpretorului puternic pe linie de comandă oferit de bash. Cu toate acestea, majoritatea utilizatorilor vor avea în continuare probleme în timp ce încearcă să gestioneze 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 ca și în numele fișierelor.



Fișiere cu spații în nume



De ce numele fișierului cu spații nu este recunoscut de Bash?

În Bash, dacă tastați mai multe cuvinte fără evadare caracter () sau citate , va considera toate cuvintele ca argumente. Acest lucru se aplică pentru toate operațiunile, indiferent dacă schimbați directorul cu „ CD „Sau încercarea de a accesa fișiere cu„ pisică ‘Comenzi. Orice scrieți după ce le utilizați va fi considerat un argument. De exemplu:



nume fișier cat.txt

Executarea comenzii fără a utiliza caracterul de evacuare sau ghilimele

Notă : Numele dvs. de fișier poate fi orice, cu excepția acestui articol, vom folosi „ numele fișierului.txt ' ca exemplu.

Aici ' pisică ‘Comanda va lua în considerare fişier și Nume ca mai degrabă două argumente decât un singur argument. Cu toate acestea, dacă utilizați caractere de evadare sau citate, atunci bash shell va considera acest lucru ca un singur argument, care va fi „ numele fișierului.txt '.



Numele fișierului cu Spaces in Bash

Există puține 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ă îl accesați și să eliminați spațiile. Unele alte metode folosesc ghilimele simple sau duble pe numele fișierului cu spații sau folosesc simbolul escape () chiar înainte de spațiu. Vom furniza metode cu exemple aplicate pentru a vă arăta cum funcționează.

Metoda 1: Utilizarea cotațiilor unice și duble

  1. Stai Ctrl + Alt tastele și apăsați T a deschide Terminal .
  2. Acum schimbați directorul unde se află fișierul.
    (poti de asemenea trage și cădere brusca fișierul din terminal după comanda ‘ pisică „, Care va pune automat citate pe calea / directorul fișierului)

    cd Desktop

    Schimbarea directorului

    Notă : Desktopul poate fi schimbat în locația pe care încercați să o accesați.

  3. Tastați următoarea comandă pentru a citi un fișier text cu spații în nume:
    pisică 'file name.txt'

    sau

    pisică 'file name.txt'

    Utilizarea cotațiilor pentru a evita spațiile în eroarea de nume

  4. Cotațiile simple și duble vor avea același rezultat. În unele cazuri, trebuie să le încercați pe amândouă și să vedeți care funcționează.

Metoda 2: Utilizarea caracterului Backlash Escape

  1. Stai Ctrl + Alt tastele și apăsați T a deschide Terminal .
  2. Schimbați directorul în care se află fișierul utilizând următoarea comandă.
    cd Desktop

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

  3. Acum tastați comanda și utilizați evadare caracter oriunde există spațiu în nume:
    fișier cat  name.txt

    Folosirea caracterului de evadare pentru a evita erorile 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 precum „ mv 'Sau' cp ‘Va considera calea ca. sursa fișierului dacă cotația este utilizată în întregime. Trebuie să furnizați cotații pentru ambele sursă și destinaţie individual, astfel încât comenzi precum „ cp ‘Poate funcționa corect. De asemenea, puteți verifica exemplul de mai jos, care vă va arăta că utilizarea caracterului de evacuare pentru cale este mult mai complexă, iar utilizatorii pot greși cu aceasta.

Diferența dintre citate și caracterul de evadare

2 minute citite