Tiedostojen ja hakemistojen käsittely

Tällä sivulla kerrotaan Unixin tiedostoihin ja hakemistoihin liittyvistä hallintakomennoista:

  • Tiedostojen ja hakemistojen selaaminen, kopiointi, siirtäminen ja poistaminen
  • Tiedonsiirto eri Unix-järjestelmien välillä
  • Tiedostojen pakkaaminen ja purkaminen
  • Tiedostojen tulostaminen.

Tiedosto- ja hakemistokomennot

Unixissa tiedostoja käsitellään useimmiten komentoriviltä annettavin käskyin. Tämän vuoksi on erittäin tärkeää, että tiedät perusteet em. komentojen käyttämisestä. Jos olet epävarma tietyn komennon toimintatavasta, varmista asia aina ensin man-komennon avulla.

ls
Komento näyttää hakemiston sisällön (ls, list). Näytetään hakemiston sisältö ja käytetään valitsinta “-al”, joka näyttää tavanomaista hakemistolistausta laajemmat tiedot:

 % ls -al
 total 32
 drwx------   2 rkeskiva        8192 Aug  9 09:43 ./
 drwx--x--x  11 rkeskiva        8192 Aug 14 13:54 ../
 -rw-------   1 rkeskiva        3422 Aug  9 09:44 Thesis.rtf
 -rw-------   1 rkeskiva         721 Aug  9 09:44 thesis.rtf

cat
Komennolla voidaan mm. tulostaa (cat, concatenate) tiedoston sisältö (esimerkiksi teksti) näytölle. Tulostetaan näytölle my_dear_alisa.txt -tiedoston sisältö:

 % cat my_dear_alisa.txt
 Hi Alisa,

I wanted to write this letter so that you’d know
about my summer plans. I will be going to Cayman
Islands and I’d like you to join me. I think it
would be awesome to spend some time together


less
Komento tulostaa tiedoston sisällön näytölle ruudullinen kerrallaan, mikä on kätevää erityisesti silloin, kun katseltava tiedosto on pitkä. Voit käyttää komennon ohella myös more-komentoa.

Näytetään my_dear_alisa_edited.txt -tiedoston sisällöstä sivu kerrallaan:

 % less my_dear_alisa_edited.txt

cd
Komentoa käytetään hakemistojen välillä siirtymiseen (cd, change directory). Siirrytään /tmp/alisaphotos-kansioon (“kautta”- eli /-merkki käskyn jälkeen ilmaisee, että tmp-kansio löytyy juuresta ja alisaphotos-kansio tmp-kansion alaisuudesta):

 % cd /tmp/alisaphotos

Siirryttyäsi yllä kuvattuun alisaphotos-kansioon huomaat, että em. kansion alaisuudesta löytyy vielä originalphotos-niminen kansio. Voit siirtyä kansion alikansioon suoraan seuraavalla käskyllä, ilman /-merkkejä:

 % cd originalphotos

cp
Komennon avulla kopioidaan tiedostoja paikasta toiseen (cp, copy).

Kopioidaan raimo_alisa_original.jpg -niminen kuva sijaintihakemistostasi /tmp/raipe-nimiseen alihakemistoon:

 % cp raimo_alisa_original.jpg /tmp/raipe

mkdir
Komennon avulla luodaan kansioita (mkdir, make directory).

Luodaan alisaphotos-niminen hakemisto rkeskiva-käyttäjän kotihakemistoon:

 % mkdir /home/rkeskiva/alisaphotos

mv
Komennon avulla siirretään tiedostoja paikasta toiseen (mv, move). Komennolla onnistuu myös tiedostojen nimeäminen uudelleen.

Siirretään raimo_alisa_original.jpg -tiedosto /tmp/raipe-nimisestä hakemistosta /home/rkeskiva/alisa-nimiseen hakemistoon:

 % mv /tmp/raipe/raimo_alisa_original.jpg /home/rkeskiva/alisa

rm
Komennon avulla poistetaan tiedostoja. Poistetaan cookbook_oldversion.txt -niminen tiedosto:

 % rm cookbook_oldversion.txt

rmdir
Komennon avulla poistetaan hakemistoja.

Poistetaan raipe-hakemisto /tmp-hakemistosta:
 % rmdir /tmp/raipe

pwd
Komento tulostaa näytölle tiedon nykyisestä sijaintihakemistosta (pwd, print working directory).

 % pwd
 /home/rkeskiva/backup

zip
Komennon avulla pakataan tiedostoja tai hakemistoja. Komennolle annetaan ensin luotavan pakkauksen nimi, ja tämän jälkeen pakattavan tiedoston tai hakemiston nimi.

Pakataan alisaphotos-hakemisto alisaphotos.zip -nimiseksi paketiksi. Huomaa, että “-r” on valitsin, jota käyttämällä pakkauskäsky käy läpi alisaphotos-kansion rekursiivisesti – eli unohtamatta mahdollisia alisaphotos-hakemiston alihakemistoja:

 % zip alisaphotos.zip -r /home/rkeskiva/alisaphotos/
  adding: /home/rkeskiva/backup/ (stored 0%)
  adding: /home/rkeskiva/backup/thesis.rtf (deflated 91%)
  adding: /home/rkeskiva/backup/Thesis.rtf (deflated 98%)

unzip
Komennon avulla puretaan tiedostoja. Komennolle annetaan purettavan tiedoston nimi, jolloin pakkaus purkautuu alkuperäiseen kokoonsa.
Puretaan cookbook.zip -tiedosto. Huomaa, että em. tiedostot eivät päädy alkuperäiseen kansioon, vaan unzip-ohjelma luo “home/rkeskiva/backup”-kansiorakenteen sen hakemiston alaisuuteen, jossa työskentelet:
 % unzip cookbook.zip
 Archive:  koe.zip
   creating: home/rkeskiva/backup/
  inflating: home/rkeskiva/backup/thesis.rtf
  inflating: home/rkeskiva/osalo/backup/Thesis.rt

 

Unixissa käytetään yleisesti nk. tar-paketteja, jotka voivat zip-pakettien tapaan sisältää toisia tiedostoja ja hakemistoja. Lue lisää komennon käytöstä antamalla “man tar” -komento.


grep

Komennolla etsitään tiettyä merkkijonoa. Kyseistä käskyä käytetään usein |-merkin eli putken (pipe) kanssa, jolloin ohjelman antama tulostus putkitetaan seuraavan ohjelman syötteeksi.

Etsitään cookbook.txt -tiedoston tulosteesta “bouillabaisse”-sanoja. Kyseinen grep-komento palauttaa cookbook.txt-tiedoston tulosteesta vain “Bouillabaisse”-sanan sisältävät rivit (esimerkkitapauksessa löytyi 1 rivi):

 % cat cookbook.txt | grep Bouillabaisse
 Bouillabaisse - the Best Bouillabaisse-recipe ever!

Tiedostojen siirtäminen Unix-järjestelmien välillä

Komentojen sftp ja scp avulla voit kopioida tiedostoja salatussa yhteydessä eri Unix-järjestelmien välillä.

sftp
Komennon avulla voit luoda tiedostonsiirtoyhteyden suoraan palvelimelta toiselle. Komentoa käytettäessä tiedonsiirtoyhteys haluttuun palvelimeen muodostetaan salattuna. Huomaa, että mm. HY:n Unix-järjestelmään ei pääse lainkaan suojaamattomilla FTP-ohjelmilla, vaan sinun on käytettävä aina suojattua (salattua) FTP-yhteyttä.

Avataan sftp-ohjelmalla tiedonsiirtoyhteys klaava-nimiseen palvelimeen:

 % sftp klaava
 rkeskiva@klaava's password:

Edellä kuvattua käskyä käyttäessäsi tiedonsiirtoyhteys muodostetaan Unix-palvelimelta toiselle Unix-palvelimelle. Voit kuitenkin siirtää tiedostoja myös muiden käyttöjärjestelmien välillä: lue lisää tiedonsiirrosta Windowsin ja unixin välillä WinSCP-ohjelmalla.

scp
Komennon avulla voit kopioida tiedostoja toiselle palvelimelle samaan tapaan kuin sftp-ohjelmalla. Kopioidaan alisa.txt-niminen tiedosto sirppi-nimiselle palvelimelle rkeskiva-käyttäjän kotihakemiston love-nimiseen kansioon:

 % scp alisa.txt rkeskiva@sirppi:love/
 rkeskiva@sirppi's password:
 alisa.txt               |  203B |  203B/s | TOC: 00:00:01 | 100%

Kopioidaan rkeskiva-käyttäjän kotihakemistosta sirppi-palvelimelta recipes-hakemiston tiramisu.txt-tiedosto nykyiseen sijaintihakemistoon (sijaintihakemisto merkitään käskyyn pisteellä):
 % scp rkeskiva@sirppi:recipes/tiramisu.txt .
 rkeskiva@sirppi's password:
 tiramisu.txt            | 3.3kB | 3.3kB/s | TOC: 00:00:01 | 100%

Tulostamiseen liittyvät komennot

Unixin komentoriviä käyttämällä voit tulostaa tiedostojasi monin eri tavoin. Seuraavilla käskyillä onnistuvat tavanomaisimmat tulostamiseen liittyvät toimet:

lpr
Komennon avulla voit tulostaa haluamasi tiedoston.

lpq
Komento näyttää tulostusjonon tilan.

lprm
Komennolla voit poistaa tulostyösi tulostusjonosta.

mpage
Teksti- ja mm. postscript- eli ps-tiedostojen tulostusohjelma. Eri valitsimia käyttämällä voit määrittää mm. sen, kuinka monelle arkille haluat tulostaa tiedoston. Lisätietoa komennon käytöstä saat kirjoittamalla komentoriville “man mpage”.