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/
  1. dTiedostotyyppi on ensimmäisen sarakkeen ensimmäinen merkki.
    

- tiedosto

d hakemisto

l symbolinen linkki.

  1. rwx------Tiedoston oikeudet ovat ensimmäisen sarakkeen seuraavat yhdeksän merkkiä. Oikeuksista ja niiden muuttamisesta lisää luvussa Tiedostojen ja hakemistojen käyttöoikeudet

  2. 2 Tiedoston sisältämien linkkien määrä.

  3. sautakki Tiedoston omistaja.

  4. mopis Tiedoston ryhmä.

  5. 1024 Tiedoston koko tavuina.

  6. May 5 12:29 Viimeisen muutoksen päiväys ja kellonaika.

  7. 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

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/tyovaline/unix/index5.html
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2003-10-13 15:47:08
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto