Cum să faceți față spațiilor din numele fișierelor de pe Linux

Dec 14, 2024
Linux

La fel ca majoritatea sistemelor de operare, Linux acceptă numele de fișiere cu spații din ele. Dar utilizarea acestor nume de fișiere pe linia de comandă nu este întotdeauna simplă. Iată mai multe moduri în care puteți gestiona numele de fișiere care conțin spații.

Numele umil al fișierului
De ce spațiile din numele fișierelor Linux sunt o durere
Cum să citați și să scăpați spații
Cum să remediați problema spațiului la sursa sa
Extinderea filei face ca tratarea cu spații să fie ușoară
Cum se folosește numele de fișiere cu spații în scripturile bash
Distanțat, dar nu flăcător

Numele umil al fișierului

Tot ce este stocat pe computerul dvs. hard disk trebuie să aibă un nume. Fără un nume, nu ar exista fișiere. Toate aplicațiile și daemonii care sunt lansate atunci când computerul dvs. pornește și tot software -ul pe care îl utilizați trebuie identificat și stocat într -un sistem de fișiere. Această identificare este numele fișierului. ”

Același lucru se aplică și fișierelor pe care le creați sau le instalați. Toate documentele, imaginile și muzica dvs. au nevoie de nume de fișiere. Fără nume de fișiere, niciunul dintre activele dvs. digitale nu ar putea exista. Deoarece numele de fișiere sunt atât de importante, Linux încearcă din greu să impună cât mai puține reguli cu privire la compoziția lor.

Pe Linux, un nume de fișier poate conține orice personaj în afară de slash -ul înainte " / ”Și personajul nul, 0x00 . Caracterul nul este utilizat pentru a marca sfârșitul unui șir, astfel încât acesta nu poate fi prezent în șirul în sine, sau Linux ar trunca numele de fișier în poziția caracterului nul. „ / ”Slash înainte este utilizat ca separator pe căile de director.

Numele de fișiere sunt sensibile la caz, și poate avea până la 255 de octeți , inclusiv personajul nul. Căile de director pot avea până la 4096 octeți, inclusiv personajul nul. Rețineți că aceasta este lungimea lor în octeți , care s -ar putea să nu echivaleze direct cu personaje . Caracterele Unicode pe 16 biți, de exemplu, iau doi octeți fiecare.

Pasionații de calculare retro și cei cu amintiri lungi vor ști că în primele zile ale calculatoarelor personale, Sistemul de operare pe disc Microsoft , Dos, a fost insensibil în caz și a avut o limită de nume de fișier de opt caractere, plus un personaj cu trei caractere extensie .

Trebuia să fii foarte gânditor și uneori creativ când ai numit fișiere. Prin comparație, libertatea pe care o avem astăzi înseamnă că putem numi fișiere orice ne dorim, cu puțin gândit la orice altceva decât descrierea pe care o creăm pentru acel fișier.

Dar, cu numele de fișiere, ceea ce ne călătorește cel mai des nu sunt personajele pe care le tam, ci spațiile dintre ele.

De ce spațiile din numele fișierelor Linux sunt o durere

Shells precum Bash vor interpreta un șir de cuvinte separate de spațiu ca argumente de comandă individuale, nu un singur argument. Iată un exemplu, folosind atingere la Creați un fișier nou numit „Noul meu fișier.txt.”

Așa cum putem vedea, ls ne arată că există trei fișiere create, unul numit „my”, altul numit „nou” și încă unul numit „file.txt”.

Rețineți că atingere Nu s -a plâns și nu a aruncat o eroare. Realizează ce crede că îi cerem să o facem. Deci ne returnează în tăcere la linia de comandă. Dacă nu suntem motivați să verificăm, nu vom ști că lucrurile nu au dispărut conform planului.

Pentru a crea fișierul pe care l -am dorit, trebuie să cităm sau să scăpăm.

Cum să citați și să scăpați spații

Dacă cităm întregul nume de fișier, atingere știe că trebuie să trateze textul citat ca un singur argument.

De data aceasta obținem un singur fișier pe care îl așteptăm.

Putem obține același rezultat dacă folosim personajul backslash " \ ”Pentru a scăpa de spații. Prin „scăparea” spațiilor în care nu sunt tratate ca personaje speciale - adică separatorii de argumente - sunt considerate a fi spații vechi.

Acest lucru funcționează, dar scăparea spațiilor face ca tastarea numelor de fișiere să fie mai lente și predispuse la erori. Lucrurile pot deveni cu adevărat urâte dacă aveți nume de director cu spații în ele.

Această comandă copiază un singur fișier text dintr -un director numit „Dir One” într -un director numit „Dir Two” și salvează copia ca fișier Bak. Și este un exemplu destul de simplu.

Cum să remediați problema spațiului la sursa sa

Dacă sunt propriile fișiere, puteți lua decizia politicii de a nu utiliza niciodată spații și de a crea (sau redenumire în vrac ) nume de fișiere ca acesta.

Desigur, aceasta este o soluție robustă, dar este încă urâtă. Există opțiuni mai bune, cum ar fi utilizarea liniuțelor „ - ”Sau subliniază„ _ ”Pentru a vă separa cuvintele.

Ambele vor evita problema și pot fi citite. Dacă nu doriți să adăugați caractere suplimentare la numele dvs. de fișiere, puteți utiliza Camelcase Pentru ca numele de fișier să fie citit, astfel:

Extinderea filei face ca tratarea cu spații să fie ușoară

Desigur, adoptarea unei convenții de denumire și respectarea acesteia va ajuta doar atunci când aveți de -a face cu propriile fișiere. Fișierele care provin din oriunde altundeva sunt puțin probabil să urmeze convenția de denumire adoptată.

Puteți utiliza extinderea filei pentru a vă ajuta să „completați” cu exactitate numele de fișiere pentru noi. Să spunem că vrem șterge fișierul Bak pe care l -am creat în „Dir Two”, folosind RM .

Începem prin a tasta „RM Dir” pentru că folosim RM comandă și știm că numele directorului începe cu „dir”.

Apăsarea tastei „Tab” determină scanarea Bash pentru meciurile din directorul curent.

Există două directoare care încep cu „Dir”, iar în ambele cazuri, următorul personaj este un spațiu. Deci Bash adaugă personajul din spate " \ ”Și un spațiu. Bash apoi așteaptă să oferim următorul personaj. Are nevoie de următorul personaj pentru a diferenția între cele două meciuri posibile din acest director.

Vom tasta A „T”, pentru „Two”, apoi vom apăsa „Tab” încă o dată.

Bash completează numele de director pentru noi și așteaptă ca noi să tastăm începutul numelor de fișier.

Avem un singur fișier în acest director, astfel încât tastarea primei litere a numelui de fișier, „M”, este suficient pentru a -l anunța pe Bash ce fișier vrem să folosim. Tastați „M” și apăsând „Tab” completează numele de fișier pentru noi, iar „Enter” execută întreaga comandă.

Extinderea filei face ușor să vă asigurați că veți obține nume de fișiere corecte și, de asemenea, grăbește navigarea și tastarea pe linia de comandă în general.

LEGATE DE: Utilizați fila completarea pentru a tasta comenzile mai rapid pe orice sistem de operare

Cum se folosește numele de fișiere cu spații în scripturile bash

Nu este de mirare că Scripturi Aveți exact aceleași probleme cu spațiile din numele de fișiere ca și linia de comandă. Dacă treceți un nume de fișier ca variabilă, asigurați -vă că citați numele variabilului.

Acest mic script verifică directorul curent pentru fișierele care se potrivesc cu modelul de fișier „*.txt” și le stochează într -o variabilă numită File_list . A pentru buclă este utilizat pentru a efectua o acțiune simplă pe fiecare.

Copiați acest text într -un editor și salvați -l într -un fișier numit „Files.sh”. Apoi folosește Chmod comanda pentru a -l face executabil.

Avem câteva fișiere în acest director. Unul are un nume simplu de fișier, iar celelalte două folosesc subliniere " _ ”Sau liniuțe„ - ”În loc de spații. Aceasta este ceea ce vedem când rulăm scenariul.

Asta pare să funcționeze frumos. Dar să schimbăm fișierele din directorul pentru fișierele care conțin spații în numele lor.

Fiecare cuvânt din fiecare nume de fișier este gestionat ca și cum ar fi fost un nume de fișier pe cont propriu și astfel scriptul nu reușește. Dar tot ce trebuie să facem pentru a face ca scriptul să gestioneze spațiile din numele fișierelor este să cităm $ fișier variabilă în interiorul pentru buclă.

Rețineți că semnul dolarului " $ ”Se află în citate. Am făcut această modificare și am salvat -o în fișierul script „Files.sh”. De data aceasta, numele de fișiere sunt gestionate corect.

LEGATE DE: Cum se procesează o linie de fișier cu linie într -un script Linux Bash

Distanțat, dar nu flăcător

Evitarea spațiilor din propriile nume de fișiere vă va duce doar până acum. Este inevitabil să întâlnești fișiere din alte surse cu nume care conțin spații. Din fericire, dacă trebuie să gestionați acele fișiere pe linia de comandă sau în scripturi, există modalități ușoare de a face acest lucru.


Linux - Cele mai populare articole

Cum de a forța utilizatorii să-și schimbe parolele pe Linux

Linux Nov 4, 2024

Ilia Titchev / Shutterstock Parolele sunt cheia de boltă pentru securitatea contului. Vă vom arăta cum să își reseteze parolele, perioadele de expirare a..


Cum se utilizează "aici documente" în Bash pe Linux

Linux Mar 31, 2025

FatmAwati Achmad Zaenuri / Shutterstock Named ciudat „aici documente“ vă permit să utilizați de intrare / ieșire de redirecționare în interiorul scri..


Ce este nou în Debian 11 "Bullseye"

Linux Jul 22, 2025

Debian. , Progenitorul multor alte distribuții Linux, a făcut eliberarea 11 disponibilă în etapa de testare. Cântăriți virtuțile de modernizare sau sunteți doar curioș..


Cum se utilizează comanda FSCK pe Linux

Linux Aug 18, 2025

Pixza Studio / Shutterstock Toate datele noastre importante se află într-un sistem de fișiere de un singur tip sau altul, precum și probleme de sistem de f..


Acest nou laptop de jocuri Linux are specificațiile pentru a rula orice

Linux Oct 20, 2025

Juno Calculatoare Linux și jocurile încep să se unească mult mai târziu. În Punte de aburi este pe drum cu Linux instalat, iar Juno tocmai a anunțat u..


Ce este pop! _OS?

Linux Oct 20, 2025

Dacă ați auzit despre Pop! _OS. , ați fi văzut că oamenii se referă adesea la ea ca cea mai bună alternativă Windows sau distribuția ideală Linux pentru jocuri. Iat�..


Cum să rulați aplicații Android pe Linux

Linux Oct 19, 2025

Quietbits / Shutterstock.com. V-ați dorit vreodată să rulați o aplicație Android pe Linux, dar nu a vrut să se confrunte cu punți de depanare, medii de ..


Cum se integrează aplicații și scripturi pe un desktop Linux

Linux Oct 10, 2025

Pe Linux, o aplicație fără fișier desktop nu se va integra cu mediul desktop. Majoritatea aplicațiilor oferă una, dar ocazional va trebui să creați una. Este destul de ușor, trebuie do..


Categorii