Tiedostojen käsittely
Tiedostojen käsittelyyn on olemassa valmiina komentoja, joilla voidaan suorittaa perustoimintoja tiedostojen suhteen. Seuraavassa käydään läpi muutamia niistä.
Listaus
ls [-optio] [hakemiston nimi]
Hakemiston sisällön tulostaminen näyttöön onnistuu komennolla ls (list).
jane:~>ls
core huuhaa samba
Mail dead.letter kala.txt saved-messages
News dynatext lintu.txt sorsat
RMAIL foo math.hosts@
bar foobar read-messages
jane:~>
Kuten edellisestä esimerkissä nähdään, pelkkä ls ilman optioita ja argumenttia tulostaa työhakemiston tiedostojen nimet näytölle ilman lisäinformaatiota. Listauksesta on vaikea päätellä onko kyseessä tiedosto vai hakemisto. Jotta hakemistot saadaan näkyviin on käytettävä optiota F.
jane:~>ls -F
core/ huuhaa/ samba/
Mail/ dead.letter kala.txt* saved-messages
News/ dynatext/ lintu.txt sorsat/
RMAIL foo/ math.hosts@
bar foobar/ read-messages
jane:~>
Tällä optiolla, kuten edellä on nähtävissä, hakemistot näkyvät tulostuksessa /-merkillä merkittyinä (esim. Mail,News,core). Suorituskelpoiset ohjelmat merkataan *-merkillä (kala*), symboliset linkit @-merkillä (math.hosts@).
Lisää informaatiota tiedostoista antaa l optio (long).
jane:~>ls -l
total 182
-rw-r----- 1 sautakki mopis 1257 Nov 15 16:00
drwx------ 2 sautakki mopis 1024 May 5 12:29
Mail/
drwxr-xr-x 2 sautakki mopis 96 Aug 5 1999 News/
-rw-rw-r-- 1 sautakki mopis 660 Jul 1 1999 RMAIL
-rw-rw-r-- 1 sautakki mopis 7 May 5 10:34 bar
d--------- 2 sautakki mopis 96 Oct 14 1998
core/
-rw------- 1 sautakki mopis 888 May 4 14:52
dead.letter
drwxr-xr-x 3 sautakki mopis 96 May 2 15:48
dynatext/
drwxrwxr-x 2 sautakki mopis 96 May 5 10:34 foo/
drwxrwxr-x 2 sautakki mopis 96 May 5 10:36
foobar/
drwxrwxr-x 2 sautakki mopis 1024 May 5 12:16 huuhaa/
-rwx--x--x 1 sautakki mopis 18 May 4 10:15 kala*
-rw-rw-r-- 1 sautakki mopis 40 May 4 10:10 lintu
lrwx------ 1 root sys 23 Sep 23 1999 math.hosts@ ->
/nfs/atkk/ns/math.hosts
-rw-r----- 1 sautakki mopis 59259 Jun 8 1999
read-messages
drwxr-x--- 2 sautakki mopis 96 Nov 16 09:05 samba/
-rw-r----- 1 sautakki mopis 22986 Jun 8 1999
saved-messages
drwxr-x--- 2 sautakki mopis 1024 Nov 3 1999 sorsat/
jane:~>
Ensimmäinen rivi kertoo hakemiston sisältämien tiedostojen koon blokkeina. Seuraavilla riveillä tiedot ovat sarakkeissa seuraavasti:
1. 2. 3.4. 5. 6. 7. 8.
drwx------ 2 sautakki mopis 1024 May 5 12:29 Mail/
-
dTiedostotyyppi on ensimmäisen sarakkeen ensimmäinen merkki.
- tiedosto
d hakemisto
l symbolinen linkki.
-
rwx------Tiedoston oikeudet ovat ensimmäisen sarakkeen seuraavat yhdeksän merkkiä. Oikeuksista ja niiden muuttamisesta lisää luvussa Tiedostojen ja hakemistojen käyttöoikeudet
-
2 Tiedoston sisältämien linkkien määrä.
-
sautakki Tiedoston omistaja.
-
mopis Tiedoston ryhmä.
-
1024 Tiedoston koko tavuina.
-
May 5 12:29 Viimeisen muutoksen päiväys ja kellonaika.
-
Mail/ Tiedoston tai hakemiston nimi.
Toisesta hakemistosta listaus saadaan antamalla hakemistopolku argumenttina ls-komennolle.
jane:~>ls sorsat
Makefile globals.c ioali.h thermocal.c tmoutil.c
config.c globals.h mjonot.c thermod.c util.c
config.h ioali.c mjonot.h thermod.h util.h
jane:~>
Hakemistojen sisältämät ns. näkymättömät tiedostot saadaan tulostukseen mukaan käyttämällä optiota -a.
jane:~>ls -a sorsat
./ config.h ioali.h thermod.c util.h
../ globals.c mjonot.c thermod.h
Makefile globals.h mjonot.h tmoutil.c
config.c ioali.c thermocal.c util.c
jane:~>
Lisää ls-komennon muista optiosta löytyy lisätietoa manuaalisivuilta komennolla man ls.
Kopiointi
cp [-optiot] [kopioitava tiedosto] [kohde hakemisto tai tiedosto]
Komennolla cp on mahdollista kopioida tiedosto hakemistosta A hakemistoon B tai kopioida tiedosto a nimelle b. Myös edellisten yhdistelmä on mahdollinen: paikasta A tiedosto a kopioidaan paikkaan B nimelle b. Cp-komento jättää alkuperäisen tiedoston entiselle paikalleen poistamatta sitä.
Seuraavassa tulostetaan ensin tiedoston kala.txt sisältö näytölle. Seuraavaksi kopioidaan tiedosto kala.txt nimelle kissa.txt. Vielä lopuksi tarkastetaan tiedoston kissa.txt sisältö tulostamalla näytölle.
jane:~>cat kala.txt
sarki
hauki
jane:~>cp kala.txt kissa.txt
jane:~>cat kissa.txt
sarki
hauki
Kopioidaan tiedosto kissa.txt oletushakemiston alihakemistoon foo nimelle koira.txt. Tarkastetaan komennolla ls, että tiedosto koira.txt sijaitsee hakemiston foo alla.
jane:~>cp kissa.txt foo/koira.txt
jane:~>ls foo
koira.txt
jane:~>
Jos halutaan kopioida useampia tiedostoja kerralla, kannattaa käyttää korvausmerkkejä. Käytetään seuraavassa korvausmerkkiä *. Kopioidaan työhakemiston kaikki ka-alkuiset tiedostot oletushakemiston alihakemistoon foo/.
jane:~>cp ka* foo/
jane:~>ls foo
kala.txtkallo.txt
jane:~>
Poistaminen
rm [-optiot] [tiedoston nimi]
Tiedostojen poistaminen onnistuu rm-komennolla. Komennon kanssa kannattaa olla varovainen, koska se poistaa tiedoston kokonaan ja UNIX ei tunne DOS-tyylistä undelete-komentoa. Pelkkä rm ei paljoa varmistuksia kysele, joten on viisasta käyttää optiota i. Myös rm-komennon kanssa on mahdollista käyttää korvausmerkkejä.
jane:~>rm -i kis*
kiss: ? (y/n) y
kissa: ? (y/n) y
kisu: ? (y/n) y
jane:~>
Korvausmerkkien kanssa kannattaa olla kuitenkin varovainen.
Toinen varottava optio, joka löytyy monesta komennosta on r eli rekursio, joka tarkoittaa tässä tapauksessa, että komennon vaikutus ulottuu kaikkiin kohdehakemiston tiedostoihin sekä kaikkiin kohdehakemiston sisältämiin alihakemistoihin.
Harjoitustehtävä: Lue manuaalisivulta man rm, mitä tapahtuu seuraavalla komennolla? älä kokeile ainakaan omassa kotihakemistossasi!!
jane:~>rm Rf *(*älä kokeile ellet tiedä mitä olet tekemässä*)
Huomaa! Erittäin vaarallinen esimerkki!!
Siirtäminen, uudelleennimeäminen
mv [-optiot] [kopioitava tiedosto] [kohde hakemisto tai tiedosto]
Mv-komento eroaa cp-komennosta siinä, että komento siirtää tiedoston kokonaan uudelle nimelle tai uuteen hakemistoon. Komento on ainoa oikea tapa nimetä tiedostoja uudelleen.
Seuraavassa siirretään hakemistosta foo kaikki tiedostot työhakemistoon.
jane:~>mv foo/* .
jane:~>
Seuraavassa esimerkissä nimetään tiedosto kissa.txt nimelle kala.txt.
jane:~>mv kissa.txt kala.txt
Käyttäjien kommentit