Unix-opas, luku 7 Tiedostot ja hakemistot:

Mitä tiedostoja on? ls kertoo

ls-komento

Aiemmin on jo mainittu, että komento ls (list) antaa yksinkertaisen listan senhetkisen työhakemiston tiedostoista. Jos työhakemistossa on alihakemistoja, ne näkyvät tiedostojen joukossa. Seuraavassa tutustutaan ls-komennon muihin muotoihin.

Komennossa voidaan antaa argumenttina

Lisäämällä komentoon ls valitsimia saa enemmän ja yksityiskohtaisempaa tietoa tiedostoista ja hakemistoista. Valitsimilla voi myös muutoin säädellä ls-komennon tulostusta. Kaikista valitsimista saa tietenkin listan man-komennolla: man ls.

Monissa Unix-koneissa on valmiiksi määritelty erilaisia ls-komennon muunnelmia. Tyypillisiä sellaisten muunnelmien nimiä ovat l, ll, L, LL. Jos käyttää niitä, kannattaa muistaa, että ne eivät ole käytettävissä kaikissa Unix-koneissa.

Pitkä tulostus: valitsin -l

Tavallisimmin käytetty ls-komennon valitsin lienee -l, jolla saa pitkän (long) tulostuksen, jossa on yksi rivillinen tietoa kutakin tiedostoa kohti. Komennolla ls -l saatava tulostus voisi olla esimerkiksi seuraava:

total 42 
-rw-r--r--   1 jkorpela users        169 Mar 30 11:09 MAIL 
drwxr-xr-x   2 jkorpela users       1024 Apr 24 09:08 Kirjeet 
-rwxr-xr-x   1 jkorpela users      16384 Mar 30 11:07 a.out 
-rw-r--r--   1 jkorpela users         26 Mar 30 10:51 iku.c 
-rw-r--r--   1 jkorpela users         71 Mar 30 11:00 juttu 
-rw-r--r--   1 jkorpela users         31 Mar 30 10:57 juttu~
Aluksi tulostuva total-luku kertoo tiedostojen yhteenlasketun koon ns. blokkeina. Yksi blokki on eri Unix-järjestelmissä erilainen: 1024, 512 tai 256 tavua.

Tavu (engl. byte) puolestaan on tiedostotilan (ja muistinkoon) perusyksikkö, joka tekstitiedostojen osalta vastaa yhtä merkkiä. Yleisesti käytetään tavu-sanan edessä etuliitteitä kilo-, mega- ja giga-, joilla on melkein mutta ei ihan sama merkitys kuin SI-järjestelmän mittayksiköissä: kilotavu tarkoittaa 1024 tavua, megatavu tarkoittaa 1024 kilotavua eli reilut miljoona tavua, gigatavu 1024 megatavua jne. (Jos tämä kuulostaa hämäävältä, älä huolestu; se on hämäävää.)

Muista riveistä kukin kertoo tietoja yhdestä tiedostosta seuraavasti:

Kaikki tiedostot esiin: valitsin -a

Normaalisti ls:n tulostuksessa eivät näy sellaiset tiedostot, joiden nimi alkaa pisteellä, paitsi jos komennossa erikseen annetaan sellainen tiedostonnimi.

Esimerkiksi tiedosto .cshrc ei näy komennon ls tulostuksessa. Sen sijaan komento ls .cshrc kyllä näyttää sen, samoin esimerkiksi ls .c*. (Komento .* joka ehkä tulee mieleen ei ole kovin hyvä ajatus, sillä erinäisistä syistä se näyttää paljon muitakin tiedostoja kuin luulisi.)

Jos ls-komennossa on valitsin -a, siis esim. ls -a, niin se tulostaa myös ne tiedostonnimet, jotka alkavat pisteellä.

Esimerkki:

epsilon ~/test 51 % ls
awktest     scr         testfile    tex.tex     typescript
epsilon ~/test 52 % ls -a
.           .foo        scr         tex.tex
..          awktest     testfile    typescript
epsilon ~/test 53 %

Esimerkistä ilmenee se valitsimen -a hiukan hämäävä piirre, että tulostuksessa näkyvät myös . ja .. jotka ovat työhakemiston ja sitä ylemmän hakemiston symbolisia nimiä.

Tulostus aikajärjestyksessä: valitsin -t

Jos ls-komennossa on valitsin -t (time), niin se tulostaa tiedostolistan aikajärjestyksessä tiedoston viimeisimmän muuttamishetken mukaan, uusimmasta vanhimpaan. (Oletusarvona ls-komennossa on tulostaminen aakkosjärjestyksessä nimien mukaan.)