Filnamn

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning
Filnamn på en skärmkonsol under Windows

Ett filnamn identifierar en fil i ett filsystem på en databärare eller vid en dataöverföring . En fil kännetecknas vanligtvis också av ett katalognamn, så att ett fullständigt söknamn skapas. Endast denna kombination till ett fullständigt söknamn är vanligtvis unikt. Identisk namngivning av två filer är inte möjlig för varje katalog (mapp) - filnamn kan normaliseras av systemet så att till exempel en förändring av stora och små bokstäver inte gör någon skillnad (ingen skiftlägeskänslighet ). Det valfria filnamnstillägget är en del av filnamnet.

egenskaper

Ett filnamn kan bestå av flera delar, beroende på respektive operativsystem eller filsystem. De enskilda delarna separeras av vissa tecken, som vanligtvis inte ingår i det tilldelade namnet. Ett sådant tecken handlar om poängen . följt av ett filnamnstillägg , vilket anger filtypen; listan över filnamnstillägg ger en översikt.

Vissa operativsystem gör hanteringen av filer enbart beroende av respektive filnamnstillägg. Andra operativsystem känner igen filtypen baserat på dess innehåll - till exempel med hjälp av ett så kallat magiskt tal , med hjälp av vilken en viss filtyp kan fastställas relativt tillförlitligt, eller med hjälp av data som lagras i den alternativa dataströmmen som är associerad med fil, till exempel filtyp och programmet som skapas. Men även på system som inte härleder filtypen från ett filnamnstillägg, tillhandahålls filnamn med dem - bland annat för att det förenklar datautbyte.

Den maximala längden på ett filnamn begränsas av både operativsystemet och filsystemet för databäraren. Till exempel kan en CD-ROM använda högst 64 tecken när du använder filsystemet Joliet . En indirekt begränsning kan också uppstå från en maximal längd av sökvägsnamn i operativsystemet.

Huruvida skillnaden görs mellan stora och små bokstäver i filnamnet beror lika mycket på vilket operativsystem som används och respektive filsystem. Särskilt historiska filsystem utformades ofta på ett icke -skiftlägeskänsligt sätt, det vill säga de sparar filnamnet t.ex. B. allmänt med versaler. De mest aktuella filsystemen är i alla fall bevarande av fall, det vill säga de behåller filnamnet i det som används när du skapar eller byter namn på stora och små bokstäver före - operativsystemet eller respektive programmeringsgränssnitt ( engelska Application Programming Interface, kort API ) kan då utformas både fall- i känsliga och små bokstäver.

Filsystem

Filsystem typisk applikation max. antal tecken i ett filnamn Teckenuppsättning Versaler (1)
CTTS / ITS inklusive hårddiskar 6 + 6 (2) [1] 6-bitars ingen skillnad (endast stora bokstäver sparas)
Unix filsystem (UFS) Hårddiskar 14/255 (3) Kodsida strikt åtskillnad
CP / M- filsystem och FAT ( 86-DOS ) Hårddiskar, minneskort (foto) 8 + 3 OEM (mestadels kodsida 437 ) ingen skillnad (endast stora bokstäver sparas); Eftersom 86-DOS användes i stor utsträckning som PC DOS och MS-DOSIBM-datorer och kompatibla datorer stöds och / eller används det som branschstandard på många andra system
Xerox Alto Hårddiskar 31 [2] lagrad, men ingen skillnad
Amiga Fast File System Hårddiskar 31 ISO 8859 lagrad, men ingen skillnad
ISO 9660 nivå 2 CD, DVD 31 ASCII ingen skillnad (endast stora bokstäver sparas)
Joliet CD, DVD 64 Unicode sparat, men ingen skillnad under Windows
ISO 9660 : 1999 CD, DVD 179–221, beroende på andra attribut ASCII / ospecificerad operativsystem beroende
FAT med VFAT ( Windows ) Hårddiskar, USB -minnen 255 Unicode sparad, men ingen differentiering under Windows (t.ex. redan på Unix)
utökat filsystem Hårddiskar 255 (4) Unicode (5) Åtskillnad
HFS + Hårddiskar 255 Unicode (UTF-16) ingen differentiering i variant HFS (standard) , med valfri strikt differentiering (som HFSX )
UDF CD, DVD 255 Unicode sparade; Differentiering beroende på operativsystem
NTFS Hårddiskar 256 (6) [3] Unicode (UTF-16) [4] filsystemet stöder skillnaden, men implementeringen kan väljas; som standard inte differentierad under Windows
REFS Hårddiskar 32 000 Unicode filsystemet stöder skillnaden, men implementeringen kan väljas
APFS SSD -enheter (7) Unicode filsystemet stöder skillnaden; En skillnad görs som standard under iOS, filnamn normaliseras som standard under macOS
Btrfs Hårddiskar 255
(1) I engelska , den tydliga skillnaden mellan stora och små bokstäver kallas " fall-känslighet " och, om denna åtskillnad inte görs, "fall- i känslighet". En implementering filsystem i ett operativsystem är antingen små bokstäver (gör Godkänd) eller fall- i känsliga (skiljer inte mellan stora och små bokstäver).
(2) Varje fil kan ha två namn på 6 tecken och varje användare har sin egen katalog: DEV;DIR:PRTONE PRTTWO
(3) Ursprungligen endast 14 tecken, ökade till 255 tecken 1983 med Berkeley Fast File System (4.2BSD).
(4) Om UTF-8- kodning och icke-ASCII-tecken används är 255 byte tillgängliga , men färre än 255 tecken .
(5) Kodningen är inte standardiserad. Standardinställningen är mestadels UTF-8.
(6) När du använder långa Unicode -sökvägar är endast 255 tecken möjliga
(7) APFS är efterföljaren till HFS + och har optimerats för flashminne och SSD -enheter, men det fungerar också på hårddiskar och andra datalagringsenheter.

genomförande

Filsystem har vissa interna strukturer som mestadels motsvarar de i referenssystemet som filsystemet utvecklades för. Ett filsystem har vanligtvis ingen rättighetshantering om operativsystemet inte heller vet detta. Ett exempel på detta är FAT- filsystemet för PC DOS eller MS-DOS : eftersom DOS i sig inte är ett fleranvändarsystem sparar det inga åtkomsträttigheter för filer och kataloger. Detsamma gäller för skapande och åtkomst av filer, som lagras på systemstandard sätt antingen som lokal tid eller som universell tid, eller med konventionen med versaler och gemener.

Stora och små bokstäver

Skillnaden mellan stora och små bokstäver kallas " skiftlägeskänslighet " på engelska. När du använder filnamnet gör det en stor skillnad, oavsett om en systemfil heter skiftlägeskänslig - med strikt åtskillnad - eller icke -skiftlägeskänslig eller känslig i fall - - utan åtskillnad - bearbetas. I skiftlägeskänsliga system hänvisar inte Dateiname (med stor bokstav) till samma fil som dateiname (alla med små bokstäver) eller DATEINAME (alla med versaler). För användaren på ett sådant system är det viktigt att hålla sig till stavningen i kataloglistan, för bara om en fil med namnet Dateiname faktiskt finns kan den också öppnas och bearbetas. Å andra sidan, om det bara finns en fil med samma namn i gemener, dateiname , ger systemet med rätta ett fel om att filen med namnet Dateiname inte existerar.

Historiskt sett var UNIX , utvecklat i slutet av 1960-talet och början av 1970-talet, ett skiftlägeskänsligt system, det vill säga med en strikt åtskillnad mellan versaler och gemener.

Det var annorlunda med de nya persondatorer i slutet av 1970 och början av 1980-talet med CP / M och DOS operativsystem på IBM PC och kompatibla datorer och med Mac OS på Apples Macintosh -plattformen: dessa är traditionellt fall- in- känslig. Om en användare eller ett program öppnar en fil som heter Dateiname på ett sådant system, öppnas dateiname (med små bokstäver) istället om filen redan finns med gemener men annars samma filnamn. Däremot förbjuder systemet också att skapa en fil med namnet DATEINAME (och annan stavning med versaler och små bokstäver), eftersom filnamnet alltid måste differentieras med ytterligare funktioner.

För ett datorsystem, fall i känslighet innebär att det måste sätta in extra ansträngning, eftersom den har att konvertera filnamn till alla möjliga stora och små bokstäver för varje begäran tills en fil med detta namn finns. Ett felmeddelande om att filen inte finns (eller vid namnkonflikter: filen redan finns) kan bara matas ut av ett sådant system när den har prövat alla möjligheter.

Om ett system användningsområden skiftläges i känsliga filnamn eller inte också har en inverkan på filsystem som används (utvecklad för och med operativsystemet), för om operativsystemet och dess API inte gör någon skillnad, inte behöver Radda dom. Omvänt är det absolut nödvändigt att skiftlägeskänsliga system behåller den exakta stavningen i filsystemet. Nuvarande filsystem är dock åtminstone utformade för att bevara bokstäver och behålla notationen-det betyder att det i de allra flesta fall också är möjligt att använda icke-systemfilsystem med systemstandardfilnamnkonventioner utan problem.

Interoperabilitet

FAT -filsystemet (i varianterna FAT12, FAT16 och FAT32) är implementerat på nästan alla operativsystem. Men eftersom filsystemet gör vissa antaganden om det underliggande systemet - och bara lagrar filnamn med stora bokstäver, är dessa t.ex. B. På Unix-liknande operativsystem konverterar filsystemdrivrutinen den till små bokstäver som standard. Med tillägget VFAT utförs denna konvertering endast om filnamnet finns i 8.3 -konventionen och med stora bokstäver i FAT. Andra tillägg för FAT, till exempel UMSDOS, implementerar en sådan konvertering oberoende om filen inte sparades på Unix och behålls i UMSDOS -format. Men eftersom Unix / Linux skiljer mellan stora och små bokstäver, känns en fil bara igen i den konverterade stavningen eller i stavningen som lagras i VFAT.

Ett exempel: Under Windows (med VFAT, dvs från Windows 95) sparas en fil med namnet Dateiname.Ext . I Windows, eftersom Windows är "fall i känsliga", vilket också erkänns i en annan stavning, till exempel bort i kommandotolken med del dateiname.ext . Under Linux känns dock exakt den här filen bara igen i den exakta stavningen Dateiname.Ext . Till exempel, om du vill visa filen med less och göra ett misstag t.ex. Till exempel, med filnamnstillägget: less Dateiname.ext , meddelar Linux felmeddelandet att filen inte finns.

Så det beror inte bara på filsystemet, utan också på operativsystemet och hur det hanterar informationen som lagras i filsystemet (filnamn, rättigheter, datum). Under vissa omständigheter z. Till exempel kan en filsystemdrivrutin svara på särdragen hos filsystemet, men operativsystemmiljön förhindrar detta. Ett exempel är hanteringen av jokertecken i ett Unix -skal . Under Linux är "case- in- känsligheten" inbyggd i filsystemdrivrutinen för AFFS, men inte i skalet. Om till exempel filnamnet DateiName (delvis med stora bokstäver) sparas på ett Amiga “ Fast File System ” kan det raderas i Unix -skalet med rm dateiname (allt med små bokstäver) eftersom filsystemdrivrutinen utför konverteringen. Om du DateiName rm dat* , DateiName inte filnamnet eftersom Unix -skalet söker efter filnamnet - eftersom detta är " skiftlägeskänsligt " hittas ingen matchning eftersom skalet strikt skiljer mellan stora och små bokstäver. [5]

Åtkomsträttigheter och ägare till filer kan antingen antas eller helt ignoreras på olika operativsystem. FUSE -Dateisystemtreiber NTFS -3G till exempel stöder åtkomstbegränsningen om den relevanta Windows -användarens SID tidigare har tilldelats en Unix -användare ( engelsk användarmappning). [6]

Operativsystem

Unix

Unix och Unix-liknande operativsystem som Solaris eller Linux betraktar filnamn som en helhet. En fil kan ha flera namn och vara placerad i flera kataloger ( ” hårda länkar ” eller ”binda mounts ”). Alla tecken utom snedstrecket / och noll -tecknet är tillåtna. Tidiga versioner hade filnamn 1 till 14 tecken långa. BSD -varianterna introducerade namn på upp till 255 tecken.

En relativ filsökväg kan bestå av flera segment och börjar med ett segment. Varje segment omfattas av filnamnets regler, så det kan vara 14 eller 255 tecken långt. Segmenten i filvägarna separeras av tecknet / . Det sista segmentet identifierar den faktiska filen. De föregående segmenten är antingen katalognamn eller symboliska länkar till katalognamn. En relativ filsökväg är baserad på den aktuella arbetskatalogen, som varje process kan ställa in individuellt. En absolut filväg, å andra sidan, börjar med / och är oberoende av den aktuella arbetskatalogen. Det startar från rotkatalogen. Alla filer i ett system är tillgängliga via rotkatalogen.

En åtskillnad görs mellan stora och små bokstäver vid åtkomst.

Exempel:

 /home/user/Dokumente/brief.txt
/ usr / bin / texteditor

Filnamnet . (Period) anger den aktuella arbetskatalogen. Namnet .. hänvisar till den överordnade katalogen.

Även utrymmet, linjeseparatorn eller de så kallade jokertecken * och ? kan vara en del av ett söknamn. Men sådana tecken orsakar ibland problem senare, då dåligt programmerade skript till exempel inte kan hantera dem. Dessutom kan det finnas problem med filnamn som innehåller tecken som inte finns i ett program som används för närvarande (till exempel japanska tecken på ett amerikanskt system). De tecken som inte kan visas visas ofta som frågetecken eller små rutor, vilket gör det mycket svårt att komma åt data. Dessa filer kan då ofta bara redigeras efter att de har bytt namn på en låg filsystemabstraktionsnivå (till exempel genom att ange den så kallade inoden istället för filnamnet med ls -i och find . -inum […] -exec mv {} […] \; ).

Ett Unix -system använder inga speciella tillägg som .EXE eller .CMD . Det har dock blivit vanligt att lägga till en punkt och en motsvarande förlängning till filer av en viss typ, som i andra operativsystem, för att förbättra tydligheten. Till exempel används slutet .c för C -källprogram. Körbara filer, det vill säga program och skript, har inte ett tillägg. Annars kan filtyper bestämmas med det enkla file , oavsett befintlig filändelse.

Filer eller kataloger vars namn börjar med en punkt behandlas vanligtvis som "dolda" filer och visas bara om användaren uttryckligen anger detta (till exempel med ls -a ).

Detsamma gäller katalogvägar.

CP / M, DOS, Windows upp till version 3.11

Under CP / M och de olika PC-kompatibla DOS- versionerna inklusive Windows upp till version 3.11 ( Windows 3.x ) består filnamn av ett faktiskt "namn" med högst åtta tecken och eventuellt en punkt och ett "tillägg" med högst tre tecken ”( engelsk tillägg ), som också anger typen av fil (se 8.3 ). Tillägg tilldelas ofta av program eller reserveras för program, till exempel .TXT för textfiler. Operativsystemen själva använder också speciella tillägg som .BAT för skriptfiler, .SYS för drivrutinsfiler eller .EXE och .COM för körbara filer.

Ett filnamn inklusive tillägget kan bestå av följande tecken: [7]

  1. Bokstäver, A - Z (gemener konverteras automatiskt till versaler)
  2. Siffror, 0-9
  3. Specialtecknen ` ' { } ( ) % & - @ # $ ~ ! _ ^

Följande tecken är inte tillåtna i filnamn och tillägg eftersom de uppfyller syntaktiska funktioner i de nämnda systemen: [7]

  1. ASCII -kontrolltecken
  2. Utrymmen
  3. Specialkaraktärerna ? * < > . , \ + : = / " ; [ ] |

Dessutom är vissa ord reserverade och får inte användas som filnamn eftersom de används som enhetsnamn :

 AUX, CON, NUL , PRN
COM1 , COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9
LPT1 , LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

Detta innebär att under klassisk DOS, till exempel, följande filnamn, som kan vara tillåtna under andra operativsystem, inte kan användas: aux.c , q"uote"s.txt , NUL.txt .

Katalognamn hanteras som vanliga filnamn under de nämnda operativsystemen. De har vanligtvis ingen förlängning, men en kan tillhandahållas. I motsats till namnen på andra filer har detta vanligtvis ingen funktion. Varje fil och varje katalog finns på en enhet, som identifieras med en bokstav och ett kolon. Ett fullständigt namn består av enheten, eventuellt ett eller flera katalognamn och det faktiska filnamnet. De namngivna komponenterna separeras från varandra med katalogseparator -symbolen \ .

 A: \ MSDOS.SYS
C: \ DOCUMENT \ BRIEF.TXT

Eftersom endast åtta tecken är tillgängliga är namnen ofta förvrängda. Namnen . och .. är reserverade för den aktuella katalogen och den högre katalogen enligt Unix.

Åtkomst är inte skiftlägeskänslig.

Windows från version 95

Under Windows , både Windows 9x och Windows NT -raderna , består ett filnamn av namnet, en punkt och ett tillägg som definierar filtypen. Du kan också ange flera punkter i ett filnamn; den sista punkten tjänar sedan till att separera namn och tillägg.

Längd på filnamn och sökväg

Normalt är banlängden under Windows begränsad till 260 tecken, dvs tre tecken för enhetsspecifikationen, 256 tecken för sökvägen i enheten och ett osynligt strängavslutningstecken. Längre sökvägar med upp till 32 767 tecken, som stöds av NTFS, är möjliga med UNC ( Uniform Naming Convention ), dvs \\?\ Måste sättas framför. [Åttonde]

För att upprätthålla kompatibilitet med gamla MS-DOS-program kan filnamnet också anges i 8.3- notering om detta inte har inaktiverats i Windows. Filnamnet visas tydligt med åtta tecken för namnet, en punkt och upp till tre tecken för filtillägget, som återskapas i varje katalog. Om filer har förlorat sina långa filnamn, det vill säga att de bara har detta specifika kortnamn, kan det finnas konflikter med befintliga filer med långa filnamn vars filnamn har förkortats till samma namn, även om de tidigare existerade i en annan katalog utan problem. (→ 8.3)

Problematiska och olagliga tecken eller namn

Som med DOS och Windows upp till version 3.11 är följande tecken inte tillåtna i filnamn och tillägg:

 <>? ": | \ / *

Följande filnamn reserverade som enhetsnamn är inte heller tillåtna:

 CON, PRN, AUX, NUL
COM1, COM2, COM3, COM4, ​​COM5, COM6, COM7, COM8, COM9
LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

Detta innebär att även under de nyare Windows -versionerna, till exempel, följande filnamn, som kan tillåtas under andra operativsystem, inte kan användas: aux.c , q"uote"s.txt , NUL.txt .

Problematiska är också filnamn som innehåller det faktiskt tillåtna & tecknet , som används av DOS-miljön under Windows som en separator för enradiga kommandokedjor, så att allt som följer ett & tecken tolkas som en annan DOS-kommandorad. Som en konsekvens kommer i detta fall kommandotolken i Windows att visa ett felmeddelande om att det inte kunde hitta eller utföra ett kommando vars namn är resten av det angivna filnamnet efter & -tecknet, för att inte tala om att filen i fråga i sig kursen kunde inte öppnas eller redigeras.

Filnamn med mellanslag i slutet är också problematiska. Du kan inte skapa detta under Windows; om de skapas under andra operativsystem kan de inte nås under Windows eftersom Windows helt enkelt skär av utrymmena i slutet. Malware-författare har redan utnyttjat detta, eftersom antivirusprogram bara kan komma åt sådana filer genom att vidta särskilda åtgärder.

Annars kan alla tecken som definieras i Unicode -standarden användas, även om äldre applikationer i praktiken ofta har problem med tecken vars kod inte finns i Windows 1252 -teckenuppsättningen.

VMS

Under VMS ( Virtual Memory System ) består ett filnamn av namnet, en punkt, ett tillägg, ett semikolon och ett versionsnummer. Versionsnumret ökas automatiskt med en varje gång en ny fil med samma namn (med tillägg) skapas. Detta låter dig behålla flera versioner (antalet kan ställas in, högst 32 767) av samma fil samtidigt. Följande information gäller ODS-2 ( engelska på diskstruktur):

Filnamn kan vara upp till 39 tecken långa, varvid endast vissa tecken (bokstäver, siffror, understrykningar, dollarstecken) är tillåtna. Ingen skillnad görs mellan versaler och gemener. Tillägget kan också vara 39 byte långt, separeras med en punkt och ingår inte i filnamnet. Med undantag för kataloger, där tillägget alltid är .DIR , har det ingen betydelse för eventuell användning av filen (men det finns standarder som vanligtvis följs för vissa filtyper).

Den totala sökvägen (dvs. disk, katalogträd, filnamn, tillägg och version) får inte överstiga 255 byte.

Internet

World wide web

Överföring av filer på World Wide Web regleras av HTTP -standarden. Om ett filnamn innehåller tecken utanför ASCII- bokstäverna och siffrorna, kodas dessa i URL: en i en % -representation med ett procenttecken , följt av en kod med två tecken i hexadecimal form, haustür.html haust%FCr.html istället för haustür.html . För att kunna bestämma kodvärdet är det nödvändigt att känna till teckenkodningen ( t.ex.UTF-8 eller ISO 8859-1 ) för filnamnet.

Filhämtning

FTP -standarden kräver bara att ASCII -tecken stöds. Ofta utförs emellertid också en filnedladdning med HTTP.

e-post

Överföringen av filbilagor (och därmed även filnamnen som tillåts där) regleras i SMTP- ochMIME -standarderna.

webb-länkar

Wiktionary: filnamn - förklaringar av betydelser, ordets ursprung, synonymer, översättningar

Individuella bevis

  1. Craig A. Finseth: The Craft of Text Editing: Emacs for the Modern World . Springer Science & Business Media, 2012, sid.   181 (engelska, begränsad förhandsvisning i Google boksökning): “… PDP-10s running ITS (the Incompatible Timesharing System)… that system's file name syntax. DEV; DIR: PRTONE PRTTWO Varje del kan vara upp till 6 tecken lång ... "
  2. “The Xerox Alto Computer” (engelska) från BYTE , utgåva 9/1981, sidorna 58–68
  3. Avsnitt Maximal väglängdsbegränsning MSDN , Namngivning av filer, sökvägar och namnområden .
  4. ^ Richard Russon, Yuval Fledel:NTFS -dokumentation.
  5. ^ Affs dokumentation för Linux -kärnan , avsnittet " Buggar, begränsningar, varningar "; Hämtad 12 juni 2016.
  6. Tuxser - NTFS -3G -användarkartläggning (engelska); Hämtad 12 juni 2016.
  7. a b Computing Center Nyhetsbrev: MICRO-sammandrag: MS-DOS-filnamn och vanliga tillägg . (Engelsk). University of Michigan, Ann Arbor 1986, vol. 16, nr. 2, 8
  8. Namnge filer, sökvägar och namnområden. I: MSDN. Microsoft, åtkomst 13 september 2011 .