Bestanden, mappen en paden
Een pad lezen
Een boom is gemakkelijk te lezen als iemand die voor je tekent. Software krijgt geen tekening, maar een regel tekst. Die regel moet de hele route bevatten.
Die opgeschreven route is een pad.
Dit is de route naar observations.csv op een Windows-computer:
C:\Users\Sam\Documents\field-notes\data\observations.csv
Lees het van links naar rechts en het vormt een routebeschrijving:
Begin bij de root van station
C:\.Ga naar
Users.Daarna naar
Sam, danDocuments, danfield-notes.Vervolgens naar
data.Stop bij het bestand
observations.csv.
Elke benoemde stap is een padsegment. Windows scheidt die gewoonlijk met een backslash.
Hetzelfde project op Linux:
/home/sam/Documents/field-notes/data/observations.csv
De / vooraan is de root van het bestandssysteem. De overige slashes scheiden de segmenten home, sam, Documents, field-notes, data en observations.csv.
En op macOS:
/Users/sam/Documents/field-notes/data/observations.csv
De drie schrijfwijzen verschillen, maar de redenering erachter niet: zoek het startpunt en volg vervolgens steeds één segment totdat je het doel bereikt.
Scheidingstekens horen niet bij de namen
Een scheidingsteken geeft een grens aan. Het hoort bij geen van de twee buren. De Windows-map in dat pad heet data, niet \data en ook niet data\.
Segmenten kunnen spaties, koppeltekens en punten bevatten. In dit pad is project notes.txt één bestandsnaam met toevallig een spatie in het midden:
C:\Users\Sam\Documents\field-notes\project notes.txt
Onthoud dat voorbeeld. Bij een shell kan die spatie voor echte problemen zorgen en lossen aanhalingstekens het op. De aanhalingstekens helpen de shell de regel goed op te splitsen. Ze maken nooit deel uit van de bestandsnaam.
Welk item is één padsegment in /home/sam/Documents/field-notes/data/observations.csv?
Onderzoek een pad voordat je iets verandert
“Dat pad bestaat niet” is een van de meest voorkomende meldingen die je zult zien. De eerste reactie erop is meestal verkeerd. Mensen voegen slashes toe of verplaatsen bestanden en maken van één probleem er drie.
Vergelijk het pad segment voor segment met de boom en let op deze vijf dingen:
Verkeerd startpunt.
C:\en/zijn verschillende werelden. Een Windows-pad dat je in een macOS-applicatie plakt, duidt daar helemaal niets aan.Ontbrekend of herhaald segment.
field-notes\data\data\observations.csvgaat twee keerdatain. Dat zie je niet door de hele reeks vluchtig te bekijken, maar door de route te volgen.Afwijkende naam.
observation.csvenobservations.csvzijn verschillende bestanden. Sommige gangbare bestandssystemen negeren standaard het verschil tussen hoofdletters en kleine letters. Andere onderscheidenReport.txtvanreport.txt. Neem de exacte spelling en hoofdletters over die je ziet, zodat hetzelfde pad op beide soorten systemen werkt.Verborgen extensie. Een bestand dat als
observations.csvwordt getoond, kan werkelijkobservations.csv.txtheten.Verkeerd scheidingsteken. Windows toont
\, Unix gebruikt/. Sommige Windows-hulpmiddelen accepteren beide. Dat is gemak, geen reden om paden willekeurig te herschrijven.
Zoek het eerste segment dat niet met de boom overeenkomt. Alles daarna is onbereikbaar. Dat segment is dus het enige dat je nu moet corrigeren.
De boom bestaat uit field-notes/ met daarin data/ met daarin raw/. Een applicatie meldt dat ze field-notes/data/raw/notes/monday.txt niet kan openen. Welk segment moet je eerst onderzoeken?
Je kunt nu op alle drie de platforms wisselen tussen een boom en een opgeschreven route. Eén vraag staat nog open en blijkt bijzonder belangrijk: begint een pad bij een root, of begint het waar je op dat moment staat?