|
fazlamesai
|
 |
« : Ağustos 04, 2007, 02:58:52 ÖS » |
|
Özyineli listeler ve inode listeleri
Bir dizinin kendisine bakmak için -d kullanabileceginizi gordunuz ancak -R ile tam tersini de yapabilirsiniz yani sadece bir dizinin içinde degil zincirleme olarak o dizinin içinde bulunan tum dizinlerin ve onlarin da içinde bulunan ve... Bu şekilde mevcut tum dizinlerin içine bakabilirsiniz! Bunun çiktisini burada gostermiyoruz cunku boyle bir komutun ciktisi epey uzun olur ancak siz kendi sisteminizde hemen ls -R¸ ve ls -Rl komutlarinin deneyip sonucu gorebilirsiniz. Son olarak, -i seçenegi dosya sistemindeki nesnelerin inode numaralarini gostermek için kullanilabilir:
$ ls -i /usr 6603072 bin 6603408 games 6603776 lib 6604116 sbin 6602956 X11R6 6603184 doc 6603524 include 6603888 local 6604230 share 6603296 etc 6603644 info 6604004 man 6604346 src
inode'lari anlamak, bolum 1
Bir dosya sistemindeki her nesneye ozgun bir indeks numarasi verilir, bu indeks'e de inode denir. Bu biraz onemsiz, ya da gereksiz detay gibi gorunebilir ama bir çok dosya sistemi işlemini anlamanin temeli inode mantigini anlamayi gerektirir. Ornek olarak, her dizinde gordugunuz . .. baglantilarini duşunelim. Gerçekte .. dizininin ne oldugunu tam olarak anlayabilmek için /usr/local'in inode numarasina bir bakalim:
$ ls -id /usr/local 6603888 /usr/local
/usr/local dizininin inode numarasi 6603888 imiş, şimdi de, /usr/local/bin/.. 'in inode numarasina bakalim:
$ ls -id /usr/local/bin/.. 6603888 /usr/local/bin/..
inode'lari anlamak, bolum 2
Gordugunuz gibi, /usr/local/bin/.. ile /usr/local'in inode numaralari ayni! Açiga çikan bu bilgiden varabilecegimiz nokta şu: Eskiden, /usr/local'i dizinin kendisi olarak duşunurduk. Ama şimdi, keşfettik ki aslinda 6603888 inode'u dizinin kendisi, ayrica da bu inode'a işaret eden iki tane de dizin tanimi (link'i) var. Hem /usr/local, hem /usr/local/bin/.. de 6603888 inode'una işaret ediyor.
inode'lari anlamak, bolum 3
Aslinda ls -dl komutu ile 6603888 numarali inode'a kaç kere baglanti yapildigini, başka bir deyişle ayni yeri gosteren kaç farkli ismin dosya sisteminde mevcut oldugunu gorebiliriz:
$ ls -dl /usr/local drwxrwsr-x 9 root staff 2048 2001-05-12 02:04 /usr/local
Soldan ikinci sutuna bakacak olursak goruruz ki /usr/local (inode 6603888) dizinine 9 baglanti (link) vardir. Benim dizinimde bu inode'a bagli olan birkaç yolu gostermem gerekirse:
/usr/local /usr/local/. /usr/local/bin/.. /usr/local/games/.. /usr/local/lib/.. /usr/local/sbin/.. /usr/local/share/.. /usr/local/src/..
|