Tıpkı MS-DOS'ta olduğu gibi Linux dosya yapısının da hiyerarşik bir yapıya sahip olduğunu söylemiştik. Temel dosya bilgisi önceki konularda anlatıldığından burada sadece dosya ve dizinlerle ilgili özelliklere değinilecektir.
Erişim hakları, Linux dosya sistemi güvenliğinin belkemiğini oluşturur. Her dosyaya ayrı verilebilen erişim izinleri sayesinde çok daha rahat bir sistem yönetimi gerçekleştirilebilir. Bu, konuya sadece sistem görevlisi tarafından yaklaşıldığı zaman çıkartılabilecek bir sonuçtur. Kullanıcı bazında erişim hakları bazen daha da anlamlı olabilir. Yanlış kullanıldığında hoş olmayan süprizlere yol açabilir. Linux altında üç çeşit erişim hakkı vardır :
Bir dosya veya dizin ilk yaratıldığı anda Linux tarafından öntanımlı
bazı izinler verilir. Genellikle bu izin çalıştırma ve okumadır. Dosyanın
oluşma anında verilen izini değiştirmek için erişim yetki kalıbı olarak
da bilinen umask
komutu kullanılır. Daha fazla bilgi için komuta
ait man dosyasına bakın.
Erişim haklarının dışında bir dosyanın üç izin düzeyi daha vardır. Bunlar, dosyanın sahibi, dosyanın grubu ve diğer kullanıcılardır. Dosyanın sahibi, o dosyayı oluşturan kişidir. Her kullanıcının bir grubu da olduğu için, dosya oluşturulurken kullanıcı hangi grupta ise dosya da o gruba ait olacaktır. Dosyanın sahibi olmayan ve grubu da dosyanın grubuyla uyuşmayan sistemdeki kullanıcılar ``diğer'' sınıfına girerler. Gruplar hakkında daha fazla bilgi için Linux Sistem Yönetimi konusuna bakın.
Dosya izin bilgilerini görebilmek için ls
komutu, -l
parametresiyle kullanılır. Aşağıdaki dosya üzerindeki erişim haklarına
göz atalım :
-rwxr-xr-x 2 gorkem users 182 Feb 12 03:58 deneme
Dosya bilgisinin en sol kısmında izin hakları yeralır. En baştaki ``-'' işareti bunun düz dosya olduğunu belirtir. ``gorkem'', dosyanın sahibi; ``users'' ise grubudur. Ardından sırayla uzunluk, son değiştirilme tarihi ve dosya ismi gibi bilgiler gelir. Son harf kümesine dosyanın modu da denir.
Solda yeralan r,w ve x karakterleri sırayla okuma, çalıştırma ve yazma haklarını belirtir. En soldaki ``-'' işaretini ayırdığımız zaman geri kalan harfleri üç adet üçlü grup haline getirelim:
rwx r-x r-x
Sırayla birinci harf kümesi dosya sahibinin izinlerini, ikinci harf kümesi grup izinleri ve son küme de diğer kullanıcıların izinlerini belirtir. Buna göre yukarıdaki dosyada
rwx
: kullanıcı okuyabilir, yazabilir, çalıştırabilirr-x
: grup okuyabilir, çalıştırabilir fakat yazamaz. r-x
: diğerleri okuyabilir, çalıştırabilir fakat yazamaz. Sol baştaki karakter ``d'' olsaydı, bir dizini inceliyor olacaktık.
Dosyanın izinlerini değiştirmek için chmod
komutu kullanılır. Bu
komutu kullanırken hangi izin düzeyine (kullanıcı, grup veya diğerleri)
hangi izinlerin verileceği veya kaldırılacağı yazılır.
Örnek olarak yukarıdaki dosyanın okuma iznini kaldırmak için
$ chmod -r deneme
kullanılabilir. "-" işareti, iznin kaldırılacağını belirtir. İzin vermek için ise "+" yazın. Dosyanın yeni görüntüsü şöyle olur :
--wx--x--x 2 gorkem users 182 Feb 12 03:58 deneme
Sadece grubun, sadece kullanıcının veya sadece diğerlerinin erişim hakkını değiştirebilmek için her izin düzeyi için bir harf tanımlanmıştır. Kullanıcı için "u", grup için "g" ve diğerleri için "o" yazarak belirli bir izin düzeyi için erişim hakkını değiştirmek mümkün olur. Bu üç harf, izinden hemen önce yazılır.
$ chmod u+x deneme (dosyanin sahibi calistirabilir) $ chmod o+r t2sac (digerleri okuyabilir) $ chmod g-w deneme (dosyanin grubu yazamaz)
Her izin için aynı zamanda sayılar da tanımlanmıştır. Dosyanın erişim izinlerinideğiştirmek için her izne ait sayıları kullanabilirsiniz. Aşağıdaki tabloda, her izin düzeyi (dosyanın sahibi, grubu ve diğerleri) için üçer tane olmak üzere toplam 9 sayıdan oluşan izin numaralarını görebilirsiniz. Bir izni vermek için sırayla numaraları toplayın. Örneğin sahibinin okuması (400), yazması (200), çalıştırması (100), grubun okuması (40), çalıştırması (10) ve diğerlerinin okuması (4) ve çalıştırması (1) için kullanılan rakamların toplamı 755'tir.
$ chmod 755 deneme
Başka bir değişiklikle konuyu pekiştirelim. Sahibinin okuması (400), yazması (100), grubun okuması (40), diğerlerinin okuması (4) için izin numarasını bulmak için bu cümlede parantez içinde yeralan sayıları toplarsak 644 yapacaktır.
$ chmod 644 deneme
Aynen dosyalarda olduğu gibi, bir dizinin de sahibi ve grubu vardır.
Bir dosyanın sahibini sadece sistemdeki root kullanıcı değiştirebilme yetkisine sahiptir. Dosya sahibinin değiştirilmesi için chown
komutu kullanılabilir. Yukarıdaki dosyanın sahibini ozgur isimli kullanıcı yapalım.
# chown ozgur deneme
Dosyanın yeni hali şöyle olur :
-rwxr-xr-x 2 ozgur users 182 Feb 12 03:58 deneme
chgrp
komutu yardımıyla da dosyanın grubunu değiştirilebilir. Yukarıdaki dosyanın grubunu www yapmak için
# chgrp www deneme
komutu kullanılabilir. chown
komutu, dosyanın hem kullanıcısını, hem de grubunu değiştirme özelliğine sahiptir. chown komutundan sonra kullanıcı ve grup isimlerini aralarında bir nokta kalacak şekilde yazın.
$ chown ozgur.www deneme $ ls -l deneme -rwxr-xr-x 2 ozgur www 182 Feb 12 03:58 deneme
Bir Linux işletim sisteminde dosyaların ve dizinlerin herbirisi sabit disk, CDROM veya diğer bilgi saklamaya yarayan cihazların birer parçası olan "dosya sistemlerinde" tutulur. Linux'un desteklediği pek çok dosya sistemi vardır ve bunların her birisinin veri depolarken kullandıkları yöntem birbirinden farklıdır.
Linux'ta her dosya sistemi farklı bir dizinde tutulur ve bu dizinlerin bilgisi /etc/fstab
dosyasında yeralır. Açılış anında bu dosyada hangi dosya sistemlerinin hangi dizinler altına yerleştirileceği okunur ve buna göre makina açılır. Linux, kendisi için özel olarak geliştirilen ext2 dosya sistemini kullanır.
Bir sistem görevlisi olarak çeşitli dosya sistemlerini tanımalı, bu dosya sistemleri üzerinde hata oluşması durumunda zararı en aza indirecek yolu bilmelisiniz. Bilgisayar başında geçireceğiniz zamanınızın büyük bir bölümünü dosya sistemleri üzerinde harcayacaksınız.
Bir dosya sisteminin kullanılabilmesi için boş bir dizin altına yerleştirilmesi gerekir. Ancak bu gerçekleştirilirse sözkonusu dosya sistemini oluşturan dosyalar üzerinde işlem yapılabilir. Bu işlem mount komutu yardımıyla yapılır.
mount
komutunun şu şekilde kullanılır :
mount -t <tip> <nereye> <aygit>
tip : Dosya sistemi çeşidi. Örnek dosya sistem çeşitleri arasında ext2, minix, msdos sayılabilir. Dosya sistemleri hakkında daha geniş bilgi için Çekirdek konfigürasyonu konusuna bakın. Genellikle mount programı ne tür bir diske eriştiğini otomatik olarak anlayacaktır.
nereye : mount edilecek dosya sistemi hangi dizin altına yerleştirileceğini belirtir.
aygıt : Üzerinde dosya sisteminin bulunduğu sabit disk, CD-ROM benzeri aygıt.
Linux'a bağlı olan tüm donanımlara ait bir giriş, /dev
dizini altında bulunur. Bu dizin altındaki dosyalar özel olarak tanımlanmıştır ve bunlara kısaca "düğüm" adı verilir. Örneğin /dev/hda2
, birinci IDE sabit diskin ikinci bölümünü; /dev/tty1
ise birinci sanal konsolu gösterir.
Çeşitli sabit disklere ait /dev
düğümleri, Linux Kurulumu bölümünde detaylı olarak anlatılmıştı. mount programı bu düğümlere ihtiyaç duyacaktır. Bu yüzden bir dosya sistemini erişilebilir hale getirebilmek için hangi düğüm ismine sahip olduğunu bilmelisiniz. Örnek olarak CD-ROM için /dev/cdrom
, birinci disket sürücü için /dev/fd0
gibi.
CD-ROM sürücüsünü /mnt
altına mount etmek için
# mount -t iso9660 /dev/cdrom /mnt
yazın. Eğer çekirdekte CD-ROM dosya sistemi desteği varsa ve sistem açılırken çekirdek CD-ROM'u tanımışsa /mnt
dizini altına CD'deki dosya sistemi yerleştirilir. Buna benzer şekilde MS-DOS disket içeren disket sürücüyü ve üzerinde ext2 dosya sistemi bulunan ikinci IDE sabit diskin birinci bölümünü sırasıyla /mnt/disket
ve /mnt/disk
dizinlerine bindirmek için
# mount -t msdos /dev/fd0 /mnt/disket
ve
# mount -t ext2 /dev/hdb1 /mnt/disk
yazılabilir. Bir mount işleminin tersini yapmak ve dosya sistemini erişilemez kılmak için umount
komutu kullanılır. /disk
altındaki /dev/hdb1
sabit disk bölümünü umount etmek için
# umount /disk
veya
# umount /dev/hdb1
kullanılır. Her iki yazım şekli de kabul edilir. Son olarak o an
sistemde bindirilmiş halde bulunan tüm dosya sistemlerini görmek için
mount
komutunu parametresiz yazın. Bu komut hakkında daha detaylı
bilgi ve aldığı diğer parametreler için man sayfasına bakın.
mount
ve umount
komutları ile bir dizin yapısını disk üzerinde
konumlandırırken veya ayırırken üzerinde işlem yapılan dizinde
bulunmamanız, ya da o dizinde başka bir süreç çalışıyor olmaması
gereklidir. Aksi takdirde aşağıdaki hata mesajını alırsınız:
# pwd /disk # umount /disk umount: /dev/hdb1: device is busy
Yapmanız gereken, ayıracağınız dizinden dışarı çıkıp tekrar denemek. Diğer
bir seçenek de fuser
komutunu kullanmak. Bu komut, ayırmak istediğiniz
dizini kullanan tüm süreçleri ekranda gösterir. Böylelikle
rahatlıkla yukarıdaki örnekteki gibi umount
işlemini
gerçekleştirebilirsiniz. fuser
komutunun -km seçeneğiyle o dizini
kullanan süreçleri öldürülebilir.
# cd / # fuser /disk /disk: 78c # fuser -km /disk # umount /disk
fuser
komutunu kullanırken dikkatli olun, zira sistemi kilitlenme noktasına
getirebilirsiniz.
Linux açılırken mount
komutu yardımıyla root dosya sistemine ekleyeceği her değişik dosya sistemini /etc/fstab
dosyasından okur ve işleme koyar. Aşağıda örnek bir fstab dosyası yeralıyor.
/dev/hda2 / ext2 defaults 1 1 /swap none swap defaults 1 1 /dev/cdrom /cdrom iso9660 defaults 1 1 none /proc proc defaults 1 1 /dev/hda1 /dos msdos defaults 1 1
Çekirdek açılış mesajları içinde
VFS: Mounted root (ext2 filesystem) readonly.
gibi bir satır göreceksiniz. Sistem açılırken en önce /
dosya sistemini mount eder. Bu sayede bu dosya sistemi altında yeralan ve hayati önem taşıyan yazılımlara (fsck
, mount
gibi) ulaşır. Daha sonra yerel dosya sistemleri ve en son da ağ üzerinden erişilen dosya sistemlerine (NFS) bağlanır. fstab dosyasında kullanıcının kendi dosyalarını yerleştiremediği, fakat sistem tarafından kullanılan swap ve proc dosya sistemleri için de mount bilgileri bulunur.
Yukarıdaki fstab dosyasında ext2 dosya sistemine sahip /dev/hda2
sabit disk bölümü, / dizinini oluşturuyor. MS-DOS formatlı /dev/hda1
bölümü de /dos
dizinine erişilebilir olarak açılış anında eklenecektir.
Sistemdeki CD-ROM sürücü /cdrom
dizini altına yerleştirilmiş olup root kullanıcı bunu istediği dizine koyabilir. Bu dosyaya, mount komutundaki gibi parametreler de eklenebilir. Dördüncü sırada yeralan defaults parametresinin yanına eklemek istediğiniz opsiyonları yazın. Bu parametrelerden sıkça kullanılan bir tanesi de "user" olup root dışındaki kullanıcılara mount hakkını verir. CD-ROM sürücüyü normal sistem kullanıcılarının mount veya umount yapabilmesi için fstab dosyasındaki ilgili satırı
/dev/cdrom /cdrom iso9660 defaults,user 1 1
satırıyla değiştirin. defaults parametresi ise , halihazırdaki dosya sistemini okunup yazılabildiğini, asenkron olduğunu, üzerindeki bilgileri bloklar halinde alıp verdiğini (buna diğer örnekler CD-ROM ve disket sürücülerdir), içerdiği programların çalıştırılabilir olduğunu ve normal kullanıcıların mount
, umount
yapamadığını gösterir. user parametresiyle kullanıcılara mount
ve umount
hakkı yukarıda verilmiştir.
Bazen MS-DOS altından oluşturulamayan dosya sistemlerini (ext2 gibi) oluşturmak gerekebilir. Linux altında bir dosya sistemini oluştururken aynı zamanda bunu kontrol eden programlar vardır. Bunların en çok kullanılanı, Slackware sürümünde gelen mkfs
/'tir.
mkfs
ile Linux native (ext2) dosya sistemi oluşturmak için mkfs.ext2
programı kullanılır.
mkfs.ext2 <aygit> <blok-sayisi>
"aygıt" yerine üzerine dosya sistemi kurulacak olan cihazın /dev
dizini altındaki düğüm dosyasının ismi yazılır. Blok sayısı yerine, fdisk
yazılımından o bölümün kaç blok olduğunu öğrenip bu sayıyı girmelisiniz. Bir blok 1024 bayttan oluşur. Örneğin
# mke2fs /dev/hda3 163829
komutu, /dev/hda3
disk bölümünde ext2 dosya sistemi kurar. Bu komutu kullanmadan önce iyi düşünün, zira burada yeralan tüm dosyalar silinir ve bu hatanın geri dönüşü olmaz. Aşağıdaki komut ile bir disket üzerinde ext2 dosya sistemi kuruluyor.
# mke2fs /dev/fd0 1440
mke2fs
ile mkfs.ext2
komutları aynıdır. Benzer şekilde, MS-DOS dosya sistemi yaratmak için mkfs.msdos
, minix dosya sistemi yaratmak için mkfs.minix
kullanılabilir. Blok sayısı girilmez ise mke2fs
bunu otomatik olarak
bulacaktır.
Herhangi bir sebepten dolayı diskte bozulma ve veri kaybını en aza indirmek için de yazılımlar vardır. fsck
ile dosya sistemi kontrolü yapılabilir. fsck
ile ext2, dosfsck
(veya fsck.msdos
) ile MS-DOS formatlı alanlar kontrol edilir.
linux:~# fsck /dev/hda2 Parallelizing fsck version 0.5b (14-Feb-95) e2fsck 0.5b, 14-Feb-95 for EXT2 FS 0.5a, 95/03/19 /dev/hda2 is mounted. Do you really want to continue (y/n)? yes Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Fix summary information<y>? yes Block bitmap differences: -46486 -46487 -46488 -46489 -46490. FIXED Free blocks count wrong for group 5 (2803, counted=2808). FIXED Free blocks count wrong (16326, counted=16331). FIXED /dev/hda2: ***** FILE SYSTEM WAS MODIFIED ***** /dev/hda2: ***** REBOOT LINUX ***** /dev/hda2: 3494/29632 files, 42904/59235 blocks
Bir dosya sistemini kontrol etmeden önce okunan bölümü root dosya sisteminden ayırın ve kontrol işleminden sonra bilgisayarı kapatıp tekrar açın.
debugfs
programı, dosya sistemi parametrelerini incelemek için
kullanılır. Disk üzerine doğrudan erişım yaptığı için dikkatli
kullanmalısınız. ext2fs yardımıyla kurtarılamayan bazı dosyalar (özellikle
silinmiş dosyalar) debugfs
yardımıyla kurtarılabilir.
Bazı durumlarda, bir dosyayı oluşturup bu dosyanın başka bir dosyayı işaret etmesi istenebilir. Genellikle sistem yöneticileri tarafından kullanılan sembolik bağlantı yardımıyla bir dosya veya dizin, bunlara karşılık gelen başka bir dosya veya dizin olarak gösterilir.
Aşağıda bir sembolik bağlantı örneği yeralıyor. Sistem görevlisi, /root
dizini altındayken /usr/src/linux
dizinine geçmek istiyor. /usr/src/linux
dizinine işaret eden bir bağlantı kurmak için ln
komutu kullanılır. -s parametresi, bu bağlantının sembolik olacağına işaret eder.
ln -s <nereye-baglanti-yapilacak> <hangi-isimle-yapilacak>
linux:~# ls -l total 116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip drwx------ 2 root root 1024 Jan 7 1980 mail -rw-r--r-- 1 root root 0 Feb 15 08:14 typescript linux:~# ln -s /usr/src/linux linux linux:~# ls -l total 116 drwxr-xr-x 2 root root 1024 Feb 14 08:13 kernel -rw-r--r-- 1 root root 115695 Sep 15 1994 lodlin15.zip drwx------ 2 root root 1024 Jan 7 1980 mail lrwxrwxrwx 1 root root 9 Feb 15 08:14 linux -> /usr/src/linux -rw-r--r-- 1 root root 0 Feb 15 08:14 typescript
Bu işlemden sonra kullanıcının /usr/src/linux
dizinine geçmesi için cd linux
" yazması yetecektir. Sembolik bağlantı dosyasını diğerlerinden ayıran, satırın en solundaki l
karakteridir.
Linux altında dosya arşivlenmesi ve sıkıştırılması neredeyse belirli ve standartlaşmış birkaç komut ile gerçekleştiriliyor. tar
komutu yardımıyla istenilen dosyaları arşivleyebilir, bunların üzerine yenilerini ekleyebilir, istediğiniz zaman da tekrar açıp eski haline getirebilirsiniz. GNU gzip
komutu ise dosyaların sıkıştırılması (zip) ve sıkıştırılmış dosyaların açılması (unzip) işlemlerini yapabiliyor. Fazla disk alanınız yoksa bu iki komut her zaman yardımınıza koşacaktır.
tar
(Tape ARchive) programı, bir veya birden fazla dosyayı tek bir forma sokar. Genellikle bir dizin ve bu dizinin altında yer alan tüm alt dizinleri biraraya getirmek için kullanılır. tar
, dosyaların üzerinde sıkıştırma işlemini normalde uygulamaz. Fakat tar
'ın GNU sürümü (Linux'ta da kullanılan) bu işlemi gzip kullanmadan da yapabiliyor.
tar
komutuna bir örnek verelim :
$ tar -cf arsiv.tar tmp/
Bu komut, -c
(create archive) parametresi yardımıyla tmp
dizini altındaki herşeyi paketleyip arsiv.tar
isimli dosyaya yollar. -f
parametresi, hangi dosyaya yazılacağını belirtir. İstediğiniz zaman dosyayı tekrar açmak isterseniz :
$ tar -xf arsiv.tar
komutunu kullanın. -x
(extract) parametresi, -f
ile belirtilen dosyayı açacaktır.
-r
opsiyonu ile daha önce yaratılmış bir arşive dosya eklenebilir. Böylece dosyayı açma ve tekrar arşiv oluşturma işleminden kurtulmuş olursunuz.
$ tar -rf arsiv.tar ekleme.txt
Dosyanın içeriğini önceden görebilmek için -t
parametresini kullanın ve bu işlemi de alışkanlık haline getirin. Bazı durumlarda arşivlenmiş yazılım, kendine ait bir dizin açmak yerine içerdiği dosyaları bulunduğu yere yazabilir.
tar -tf arsiv.tar
Hangi dosyaların açıldığını ekranda görebilmek için -v
parametresini ekleyin:
# tar -zcvf tmp.tgz /tmp tar: Removing leading / from absolute path names in the archive. tmp/ tmp/tar-error tmp/.X11-unix/ tmp/rc.inet1.OLD tmp/networks.OLD tmp/linux/ tmp/linux/fss.txt tmp/lilo.conf tmp/PKGTOOL.REMOVED
Aşağıdaki komut, arşivlenen dosyaları diskete kaydetmeye yarıyor. Bunun için temiz bir disketi yuvasına yerleştirin ve aşağıdaki satırı yazın.
# tar -cf /dev/fd0 tmp/
tmp
dizini altındaki herşeyi diskete kaydetmiş olduk. Açmak için bilinen yöntemi kullanırız :
# tar -xf /dev/fd0
Dosya sıkıştırma amacıyla sıkça kullanan iki yazılım vardır : gzip
ve compress
. Her iki yazılım da Slackware Linux dağıtımında bulunuyor. GNU'nun dağıtımı olan gzip
, tar
ile birlikte kullanılan ve dosya sıkıştırma ve arşivlemede neredeyse standart haline gelmiş bir program. Bir dosyayı sıkıştırmak için parametre girmeden gzip komutunun ardından dosya ismini yazın.
$ gzip elvis $ ls -al elvis.gz
gzip
ile sıkıştırılmış dosyaların sonu .gz ile biter. Bunları açmak için gunzip
komutunu kullanın:
$ gunzip elvis.gz
compress
ve uncompress
de sırayla bir dosyayı sıkıştırmak ve açmak için kullanılır. Aslında Linux'ta uncompress
adında bir yazılım yoktur, bu dosya ismi compress
dosyasına bağlantılıdır. compress
ile sıkıştırılan dosyaların sonu .Z ile biter.
$ ls -al web.html -rw-r--r-- 1 gorkem users 41450 Jan 27 13:40 web.html $ compress web.html $ ls -al web.html.Z -rw-r--r-- 1 gorkem users 18906 Jan 27 13:40 web.html.Z
Yukarıdaki web.html
dosyasını sıkıştırdığımızda dosyanın boyutu 41450 bayttan 18906 bayta indi. Açmak için:
$ uncompress web.html.Z
Bir dosyanın uzantısından ne tür bir dosya olduğunu anlayamazsanız file komutu imdadınıza koşar. Linux'ta belirli uzantılı dosyaların başı bilinen bir harf veya harf grubu ile başlar. file komutu dosyanın başındaki karakterleri kontrol ederek ve bunları bir listeyle (/etc/magic
) karşılaştırarak dosyanın ne tür olduğunu söyler.
# file tmp.gz tmp.tgz: gzip compressed data - deflate method , last modified: Sat Feb 15 08:21:50 1997 os: Unix # file tmp.tar.Z tmp.tar.Z: compressed data 16 bits
ftp adreslerinde Linux için yeralan yazılımlar genellikle tar
ve
gzip
, nadiren de tar
ve compress
ile sıkıştırılıp
arşivelenerek saklanırlar. Çünkü tar komutu tek başına arşivi sıkıştırmaz, bu
işlem için gzip
veya compress
kullanılır. Bunların
açılabilmesi için tar
komutu ve birkaç parametre yeterli olur.
$ ls netscape-4.0.linux-elf.tar.gz
Yukarıdaki dosya önce tar ile arşivlenmiş, ardından gzip
ile sıkıştırılmış. Tek adımda bu iki dosyayı açmak için tar dosyasına x ve f parametrelerinin dışında z parametresini de ekleyin :
$ tar -zxf netscape-4.0.linux-elf.tar.gz $ ls netscape-4.0.linux-elf
Eğer dosya sıkıştırılırken compress komutu kullanılmışsa z yerine Z parametresini yazın.
$ ls folder.tar.Z $ tar -Zxf folder.tar.Z $ ls folder
Benzer şekile, bir dosyayı aynı anda hem tar ile arşivlemek, hem de sıkıştırmak istersek c ve f parametreleri dışında compress ile Z, gzip ile z parametrelerini girmek yeterlidir. Aşağıda sırayla gn-gopher dizisinin önce tar ve gzip ile, ardından tar ve compress ile arşivlenmesi görülüyor.
$ ls gn-gopher/ $ tar -zcf gopher.tgz gn-gopher/ $ tar -Zcf gopher.tar.Z gn-gopher/
Linux işletim sistemini ilk kurduğunuz anda, yüzlerce dizin altında binlerce dosyanız olacaktır. find
komutu, bu dosyaların arasında tarama yapabilmek için geliştirilmiştir. Bu komutla sadece dosya isimlerine değil, dosyanın sahibi, erişim hakları, son erişim tarihi gibi verilere de ulaşmak mümkündür.
find
komutunun en sık kullanış şekli şudur :
find <dizin-ismi> -name <ne-aratiliyor>
dizin-ismi yerine taranacak olan dosyanın bulunduğu dizin ismi yazılır. -name parametresinden sonra ise aranan dosyanın ismini girin. Burada "*" ve "?" gibi joker karakterlerini de kullanabilirsiniz. (Bu gibi özel karakterler hakkında daha geniş bilgi Bash kabuğu konusu altında bulunabilir)
Aşağıda, find komutunun kullanımına ilişkin birkaç örnek yeralıyor.
$ find . -name "*.html" (bulundugunuz dizinden itibaren sonu .html ile biten dosyalari arar) $ find /home/halil -name "screen" (/home/halil dizininden itibaren screen isimli dosyalari arar)
Bu komut, -type d
parametresi yardımıyla sadece dizin isimleri arasında arama yapar.
$ find /usr/ -name "linux" -type d
find
komutuna bir alternatif olan locate
komutu ile dosyalar çok kısa bir sürede taranabiliyor. update
komutu, her sabah belirli bir saatte sistemdeki tüm dosya ve dizin isimlerini bir veri tabanına yükler. Daha sonra bu dosyada yeralan belirli bir dosya veya dizin ismini locate
ile arayabilirsiniz:
# locate pico /usr/bin/pico /usr/man/man1/pico.1.gz
Yukarıdaki komut ile içinde pico kelimesi geçen dosyaları bulduk.
Linux altından, MS-DOS formatlı disketlere ulaşmayı kolaylaştıran paketin ismi mtools
olarak biliniyor. Bu isim, paketin tüm komutlarının ilk harfinin "m" olmasından kaynaklanmış. Paketle birlikte gelen çeşitli yardımcı programlar sayesinde MS-DOS formatlı diskette yeralan dosyalar listelenebilir, silinebilir, disket formatlanabilir, hatta disketin kimliği değiştirilebilir.
Son çıkan mtools
paketi, 2MB formatlı disketleri de tanıyabiliyor. Aşağıda, mtools
paketinden çıkan bazı komutlar ve örnek kullanımları gösteriliyor.
mdir : disketin içeriğini görüntüler.
linux:~# mdir a: Volume in drive A is SYSTEM_BT Directory for A:/ IO SYS 40566 9-30-93 6:20a MSDOS SYS 38138 9-30-93 6:20a AUTOEXEC BAT 91 3-29-95 10:23a NDD <DIR> 3-29-95 10:26a CHKLIST MS 81 11-07-96 7:00p VGA_45 <DIR> 3-29-95 10:28a YARDIM <DIR> 3-29-95 10:17a UTIL <DIR> 3-29-95 10:17a VIRUS <DIR> 3-29-95 10:17a 9 File(s) 291328 bytes free linux:~#
mcopy : Bir dosyayı Linux'tan diskete, disketten Linux'a aktarır.
linux:~# mcopy a:/autoexec.bat . Copying AUTOEXEC.BAT
mdel : DOS dosyasını siler
mformat : Disketi formatlar.
mmd : Disket üzerinde dizin oluşturur.
MSDOS mtools
arabirimi aynı zamanda VFAT tipi uzun dosya isimlerini de ekranda gösterebilir. Eğer dosya ismi, tek bir DOS ismi içine sığmıyorsa ve 8+3 kuralını bozuyorsa uygun bir kısa isim yaratılır.
Bunun yanında mtools
'un 2 Mb'lık disketleri okuyabilme özelliği de vardır.
mtools paketinin konfigürasyon dosyası /etc/mtools.conf
'tur. Bu
dosyanın kullanımı için mtools(1) man dosyasından yararlanabilirsiniz.