Unix-järjestelmässä tiedoston tai hakemiston nimessä voi periaatteessa käyttää isoa valikoimaa merkkejä, mutta käytännössä kannattaa käyttää vain kirjaimia a-z ja numeroita sekä seuraavia erikoismerkkejä:
.
_
-
Skandinaaviset kirjaimemme å, ä ja ö yleensä aiheuttavat vain ongelmia, joten niitä ei kannata käyttää tiedostojen tai hakemistojen nimissä.
Muistathan, että Unixissa
isot ja pienet kirjaimet ovat eri merkkejä,
joten esim.
TKK
on aivan eri tiedostonnimi kuin tkk
tai Tkk
.
Yleensä on tapana käyttää pääasiassa pieniä kirjaimia. Jotkut erottelevat tiedostojen nimet hakemiston nimestä kirjoittamalla tiedoston nimen pienellä alkukirjaimella, kun taas hakemiston nimen isolla alkukirjaimella. Silloin siis
tkk
olisi tiedosto ja Tkk
hakemisto.
Mutta on jokaisen itse päätettävissä, miten omat tiedostonsa ja hakemistonsa nimeää.
Nimen pituudella ei käytännössä ole rajoitusta, sillä tiedoston tai hakemiston nimi voi olla jopa 256 merkkiä pitkä. Pitkät nimet ovat kuitenkin hankalia käyttää.
Unix tulkitsee tiedostojen (ja hakemistojen) nimet seuraavasti:
/etc/motd
tarkoittaa juurihakemiston
alihakemiston etc
motd
-nimistä tiedostoa
xyz
tarkoittaa normaalisti käyttäjän omaa
xyz
-nimistä tiedostoa ja
abc/foo
tarkoittaa käyttäjän oman alihakemiston
abc
tiedostoa foo
.
Piste on mahdollinen tiedoston (tai hakemiston) nimen ensimmäisenäkin
merkkinä, mutta sillä on erikoismerkitys.
Pisteellä alkavat tiedostonnimet eivät normaalisti näy
tiedostolistoissa, jotka saadaan ls
-komennolla.
Sellaiset tiedostot ovat yleensä eri ohjelmien alustustiedostoja tai
ohjelmien perustamia ja ylläpitämiä "kirjanpitotiedostoja", joista
oletetaan, että käyttäjät eivät yleensä halua nähdä niitä.
Esimerkkejä: Emacs-editori suorittaa .emacs
-nimisessä
tiedostossa määritellyt toimenpiteet, jos sellainen tiedosto on
käyttäjän kotihakemistossa.
Nyysiohjelmat yleensä luovat tiedostoja,
joiden nimet ovat sentapaisia kuin .newsrc
, ja ylläpitävät
niissä tietoja siitä, mitä nyysiryhmiä käyttäjä lukee ja mitä juttuja
niistä hän on jo lukenut.
foo~
ja #foo#
Jotkin ohjelmat saattavat automaattisesti luoda tiedostoja, joilla
on erikoisia nimiä. Tavallisimmin käyttäjä huomaa
sellaisten
tiedostonnimien kuin foo~
ja
#foo#
syntymisen. Niitä luo Emacs-editori.
Kun Emacsilla editoidaan tiedostoja, se tallettaessaan tiedoston
muokatussa muodossa automaattisesti tallettaa tiedoston aiemman
sisällön tiedostoon, jonka nimen perässä on tildemerkki ~
.
Siis kun talletat tiedoston foo
muokatussa muodossaan,
Emacs panee vanhan version talteen tiedostoon foo~
.
Näitä "varmuuskopioita" ei yleensä kannata hävittää, ellei
tiedosto ole hyvin suuri. "Varmuuskopiota" voit tarvita esimerkiksi
silloin, kun huomaat tehneesi tiedostoon vääriä muutoksia.
Jos Emacsin toiminta päättyy epänormaalisti esimerkiksi tietokoneen
(tai itse Emacs-ohjelman)
"kaatumisen" tai modemiyhteyden katkeamisen takia, Emacs ainakin
yrittää tallettaa editoitavan tiedoston senhetkisen tilan
tiedostoon, joka koostuu tiedostonnimestä ristikkomerkkien # sisällä.
Jos siis olet editoimassa tiedostoa foo
ja Emacsin
toiminta päättyy epänormaalisti, niin löydät tiedostosta foo
tilanteen sellaisena, kuin se oli viimeisellä normaalilla
tallennushetkellä, ja tiedostosta #foo#
mahdollisesti
uudemman version.
Joskus käyttäjä itse onnistuu saamaan aikaan hankalan tiedostonnimen,
esimerkiksi sellaisen, joka alkaa yhdysviivalla tai sisältää
kontrollimerkkejä. Sellaisiin tiedostoihin ei voi viitata normaalilla
tavalla komennoissa, joissa haluttaisiin esim. poistaa näitä
tiedostoja tai vaihtaa niiden nimiä.
Muun muassa
Unix-fakissa on
ohjeita hankalien tiedostonnimien käsittelyyn.
Tässä mainittakoon vain, että jos tiedostonnimi alkaa yhdysviivalla,
esim. -foo
, niin siihen voi viitata tyyliin
./-foo
, jolloin komentotulkki käsittää sen
tiedostonnimeksi eikä valitsimeksi.
Unix-komennoissa voi tiedostonnimissä käyttää ns. jokerimerkkejä eli "villikorttimerkkejä" (wildcards). Nimitys johtunee canastan ja jokeripokerin tapaisista korttipeleistä, joissa joitakin kortteja kuten jokereita voi käyttää "villeinä kortteina" minkä hyvänsä kortin asemesta. Tarkkaan ottaen kyse ei tällöin ole varsinaisista tiedostonnimistä vaan rakenteista, joita voi käyttää komentojen argumentteina tiedostonnimien paikalla ja jotka komentotulkki laventaa tiedostonnimilistoiksi.
Unixissa jokerimerkkejä ovat
marj?
tarkoittaa kumpaakin tiedostonnimistä marja
ja marjo
ja
myös mitä tahansa viisimerkkistä marj
-alkuista merkkijonoa.
Toisaalta
marj*
taas tarkoittaisi esimerkiksi
tiedostonnimiä
marjaana
, marja
,
marjo
, marj
, marjukka
jne.,
siis mitä tahansa merkkijonoa, mikä alkaa kirjaimilla marj
.
Lisää esimerkkejä:
ls tieto???
antaa listan kaikista niistä tasan
kahdeksan merkin mittaisista olemassaolevien tiedoston nimistä, jotka alkavat merkkijonolla tieto
ls tieto*
antaa listan kaikista niistä olemassaolevien tiedoston nimistä,
jotka alkavat merkkijonolla tieto
,
mukaan lukien nimi tieto
ls *tieto*
antaa listan kaikista niistä olemassaolevien tiedoston nimistä, joissa esiintyy jossakin kohdassa merkkijono
tieto
.*
ei siis lavennu aivan kaikkien tiedostonnimien listaksi, vaan pisteellä alkavat jäävät pois.
Jokerimerkkien käyttö tehostaa työskentelyä, mutta siinä on omat riskinsä. Vahingossa saattaa tulla viitatuksi sellaisen tiedoston tai hakemiston nimeen, johon ei ollut aikomus puuttua. Jokerimerkkien käytössä on siis hyvä olla huolellinen, ettei esim. tiedostoja poistettaisi turhaan.