Sådan håndteres rum i filnavne på Linux

Dec 14, 2024
Linux

Som de fleste operativsystemer understøtter Linux filnavne med mellemrum i dem. Men at bruge disse filnavne på kommandolinjen er ikke altid ligetil. Her er flere måder, du kan håndtere filnavne, der indeholder rum.

Det ydmyge filnavn
Hvorfor mellemrum i Linux -filnavne er en smerte
Sådan citeres og undslipper Rum
Hvordan man løser rumproblemet ved sin kilde
Tabudvidelse gør det nemt at håndtere mellemrum
Sådan bruges filnavne med mellemrum i bash -scripts
Fordelt, men ikke flassende

Det ydmyge filnavn

Alt, der er gemt på din computers harddisk skal have et navn. Uden et navn ville der ikke eksistere nogen filer. Alle applikationer og dæmoner, der lanceres, når din computer starter op, og al den software, du bruger, skal identificeres og gemmes i et filsystem. Denne identifikation er navnet på filen. '

Det samme gælder for de filer, du opretter eller installerer. Alle dine dokumenter, billeder og musik har brug for filnavne. Uden filnavne kunne ingen af dine digitale aktiver eksistere. Fordi filnavne er så vigtige, prøver Linux hårdt at pålægge så få regler om deres sammensætning, som det kan.

På Linux kan et filnavn indeholde ethvert tegn bortset fra den forreste skråstreg “ ”Og nulkarakteren, 0x00 . Nulkarakteren bruges til at markere afslutningen på en streng, så den kan ikke være til stede i selve strengen, eller Linux ville afkortet filnavnet på nulkarakterens position. Det " ”Fremspor skråstreg bruges som separator i katalogstier.

Filnavne er det store og små bogstaver, og kan være op til 255 byte lange , inklusive nulkarakteren. Katalogstier kan være op til 4096 byte lange, inklusive nulkarakteren. Bemærk, at dette er deres længde i bytes , som måske ikke sidestilles direkte til tegn . 16-bit Unicode-tegn, for eksempel, tager to byte hver.

Retro-computing-entusiaster og dem med lange minder vil vide, at i de tidlige dage af personlige computere, Microsofts diskoperativsystem , Dos, var case-følsom og havde en filnavngrænse på otte tegn plus en tre-karakter udvidelse .

Du måtte være meget tankevækkende og undertiden kreativ, da du navngav filer. Til sammenligning betyder den frihed, vi har i dag, at vi kan navngive filer, hvad vi vil, med lidt tanke til noget andet end den beskrivelse, vi opretter til den fil.

Men med filnavne er det, der oftest ikke er de figurer, vi skriver, det er mellemrummet mellem dem.

Hvorfor mellemrum i Linux -filnavne er en smerte

Skaller som Bash vil fortolke en rumskileret række af ord som individuelle kommandoargumenter, ikke et enkelt argument. Her er et eksempel ved hjælp af røre ved til Opret en ny fil kaldte "min nye fil.txt."

Som vi kan se, ls viser os, at der er oprettet tre filer, en kaldet "min", en anden kaldet "ny", og en mere kaldet "File.txt."

Noter det røre ved Klagede eller kastede ikke en fejl. Det udfører, hvad det mener, at vi beder det om at gøre. Så det returnerer os stille til kommandolinjen. Hvis vi ikke er motiverede til at tjekke, ved vi ikke, at tingene ikke er gået efter planen.

For at oprette den fil, vi ønskede, er vi nødt til at citere eller flygte.

Sådan citeres og undslipper Rum

Hvis vi citerer hele filnavnet, røre ved Ved, at det er nødt til at behandle den citerede tekst som et enkelt argument.

Denne gang får vi den enkelte fil, som vi forventer.

Vi kan få det samme resultat, hvis vi bruger backslash -karakteren “ \ ”At undslippe rummet. Ved at "undslippe" de rum, de ikke behandles som specialtegn - det vil sige argumentseparatorer - betragtes de som almindelige gamle rum.

Det fungerer, men at undslippe mellemrum gør typning af filnavne langsommere og fejlagtigt udsat. Ting kan blive virkelig grimme, hvis du også har katalognavne med mellemrum i dem.

Denne kommando kopierer en enkelt tekstfil fra et bibliotek kaldet “Dir One” til et bibliotek kaldet “DIR TO” og gemmer kopien som en BAK -fil. Og det er et ret simpelt eksempel.

Hvordan man løser rumproblemet ved sin kilde

Hvis de er dine egne filer, kan du tage den politiske beslutning om aldrig at bruge mellemrum og oprette (eller bulk omdøb ) filnavne som denne.

Det er ganske vist en robust løsning, men den er stadig grim. Der er bedre muligheder, såsom at bruge instrumentbræt “ ”Eller understreger” _ ”At adskille dine ord.

Begge disse vil undgå problemet, og de er læsbare. Hvis du ikke ønsker at tilføje ekstra tegn til dine filnavne, kan du bruge Camelcase For at gøre dine filnavne læses som dette:

Tabudvidelse gør det nemt at håndtere mellemrum

At vedtage en navnekonvention og holde sig til den vil naturligvis kun hjælpe, når du har at gøre med dine egne filer. Filer, der kommer fra andre steder, vil sandsynligvis ikke følge din vedtagne navnekonvention.

Du kan bruge Tab -udvidelse til at hjælpe dig nøjagtigt med at "udfylde" filnavne til os. Lad os sige, at vi vil Slet BAK -filen, vi oprettede i “Dir to”, ved hjælp af rm .

Vi starter med at skrive “RM Dir”, fordi vi bruger rm Kommando, og vi ved, at katalognavnet starter med "Dir."

Ved at trykke på “Tab” -tasten får Bash til at scanne efter kampe i det aktuelle bibliotek.

Der er to mapper, der starter med "Dir", og i begge tilfælde er den næste karakter et rum. Så Bash tilføjer tilbageslagskarakteren “ \ ”Og et rum. Bash venter derefter på, at vi leverer den næste karakter. Det har brug for den næste karakter for at skelne mellem de to mulige kampe i dette bibliotek.

Vi skriver en "T", for "to", og tryk derefter på "Tab" endnu en gang.

Bash afslutter katalognavnet for os og venter på, at vi skriver starten af filnavnet.

Vi har kun en fil i dette bibliotek, så at skrive det første bogstav i filnavnet, "M", er nok til at fortælle, hvilken fil vi vil bruge. At skrive “M” og trykke på “Tab” afslutter filnavnet for os, og “Enter” udfører hele kommandoen.

Tabudvidelse gør det nemt at sikre, at du får filnavne rigtige, og det fremskynder også at navigere og skrive på kommandolinjen generelt.

RELATEREDE: Brug fanebladet til at skrive kommandoer hurtigere på ethvert operativsystem

Sådan bruges filnavne med mellemrum i bash -scripts

Det er ingen overraskelse scripts Har nøjagtigt de samme problemer med mellemrum i filnavne som kommandolinjen gør. Hvis du videregiver et filnavn som en variabel, skal du sørge for at citere variabelnavnet.

Dette lille script kontrollerer det aktuelle bibliotek for filer, der matcher filmønsteret “*.txt”, og gemmer dem i en variabel kaldet File_list . EN til Loop bruges til at udføre en simpel handling på hver enkelt.

Kopier denne tekst til en editor, og gem den i en fil kaldet "Files.sh." Brug derefter det Chmod kommando for at gøre det eksekverbart.

Vi har nogle filer i dette bibliotek. Den ene har et simpelt filnavn, og de andre to bruger understregninger “ _ ”Eller strejker“ ”I stedet for mellemrum. Dette er hvad vi ser, når vi kører scriptet.

Det ser ud til at fungere pænt. Men lad os ændre filerne i biblioteket for filer, der indeholder mellemrum i deres navne.

Hvert ord i hvert filnavn håndteres som om det var et filnavn på egen hånd, og derfor mislykkes manuskriptet. Men alt hvad vi skal gøre for at få script til at håndtere rum i filnavne er at citere $ fil Variabel inde i til Loop.

Bemærk, at dollartegnen “ $ ”Er inde i citaterne. Vi foretog den ændring og gemte den i filen “Files.sh” -script. Denne gang håndteres filnavne korrekt.

RELATEREDE: Sådan behandles en fillinje for linje i et Linux Bash -script

Fordelt, men ikke flassende

At undgå rum i dine egne filnavne vil kun tage dig så langt. Det er uundgåeligt, at du støder på filer fra andre kilder med navne, der indeholder mellemrum. Heldigvis, hvis du har brug for at håndtere disse filer på kommandolinjen eller i scripts, er der nemme måder at gøre det på.


Linux - Mest populære artikler

Sådan installeres Signal Desktop på Linux

Linux Jan 22, 2025

Eliseu Geisler / Shutterstock.com Signal er Privacy-fokuserede smartphone messaging app alle synes at bruge . Du kan også bruge signal p..


De bedste Linux Laptops på 2021 for udviklere og entusiaster

Linux Sep 27, 2025

tomeqs / shutterstock.com. Hvad skal man se efter i en Linux laptop i 2021 Du kan købe næsten enhver bærbar computer og Installer Linux p�..


Linux bliver 30: Hvordan et hobbyprojekt erobrede verden

Linux Sep 17, 2025

Larry ewing og gimp På 17. september 1991 , Linus Torvalds frigivet Linux Kernel (version 0.01) for første gang. Her er et kort kig på, hvordan e..


Hvad er nyt i Ubuntu 21.10 ’Impish Indri’

Linux Oct 14, 2025

Canonical. Ubuntu 21.10 "Impish Indri" var Udgivet den 14. oktober 2021. Det har funktioner GNOME 40. , en ny kerne- og opdaterede applikat..


Hvad er UNIX EPOCH, og hvordan virker UNIX Time?

Linux Nov 10, 2024

Mikhail Leonov / Shutterstock Unix gemmer tid som antallet af sekunder siden 1. januar 1970. Og det betyder, at Linux også gør. Vi forklarer dette tilsynelad..


Sådan tilføjes en bruger til sudoers -filen i Linux

Linux Oct 30, 2025

Hvis en sudo Kommando på Linux får dig en besked om, at en bruger "ikke er i sudoers -filen", skal du komme på "sudoers" -listen. Vi går gennem at tilføje en bruger til sudoers ..


Sådan integreres applikationer og scripts til et Linux -skrivebord

Linux Oct 10, 2025

På Linux integreres en applikation uden en desktop -fil ikke med dit desktopmiljø. De fleste applikationer giver en, men lejlighedsvis skal du oprette en. Det er ret let, bare følg disse tri..


Sådan angiver miljøvariabler på Linux

Linux Oct 31, 2025

På Linux har miljøvariabler vigtige værdier og indstillinger. Scripts, applikationer og skaller læser disse værdier, ofte for at konfigurere sig selv eller for at kontrollere deres opførs..


Kategorier