ARİDOSHİKA

Ulaşabildiğin her yerde

Linux -101 – 1   Linux -101 – 2

LS komutu bilenler için linux 101 serisinde 3. seri ile devam edelim cat ,cp ,mv ,Linkler yaratmak ve dosyaları silmek , Sembolik bağlantılar , rm ve  rmdir konularını işliycez

Cat ve cp

Terminalde dosyanın içeriğini görüntülemek için cat komutunu kullanın:

Şimdi cp komutunun en basit şeklini kullanarak benikopyala dosyasının benikopyaladi isimli bir kopyasını çıkarabiliriz:

Detaylı olarak incelersek görürüz ki bu ikisi gerçekten de birbirinden ayrı dosyalardır, inode numaraları farklıdır:

Mv

Şimdi ”benikopyaladi” dosyasını ”benitasidi” olarak isimlendirmek için mv komutunu kullanalım. Bu sefer inode numarası aynı kalmakla birlikte bu inode numarasına sahip olan dosya ismi değişmiş olacaktır.

Taşınan (move) bir dosyanın inode numarası, söz konusu dosya kaynak dosya ile aynı dosya sisteminde bulunduğu sürece aynı kalır.

Linkler yaratmak ve dosyaları silmek

Katı bağlantılar (hard links)

Daha önce dizin girişleri ve inode’lar arasındaki ilişkiden bahsederken bağlantı terimini kullanmıştık. Aslında Linux altında iki tip bağlantı çeşidi vardır. Daha önce tartıştığımız bağlantılar katı bağlantılardı. Sistem üzerindeki herhangi bir inode herhangi bir miktarda katı bağlantıya sahip olabilir, ve tüm katı bağlantılar ortadan kalkana kadar da sistem üzerinde var olmaya devam edecektir. Yeni katı bağlantılar ln komutu kullanılarak yaratılabilir:

Katı bağlantılar, devamı

Görebildiğiniz gibi, katı bağlantılar bir dosyayı ilişkilendirmek için inode seviyesinde çalışmaktadır. Linux sistemlerde, katı bağlantıların bazı kısıtlamaları vardır. Bir kısıtlama, sadece dosyalara katı bağlantılar yapmaya izin verir, dizinlere vermez. ”.” ve ”..” sistem tarafından yaratılmış dizinlere ilişkilenmiş katı bağlantılar olmasına rağmen bu doğrudur. ”root” kullanıcısı bile olsanız, kendinize ait dizinlere ilişkilenmiş yeni katı bağlantılar yaratamazsınız. Katı bağlantıların ikinci kısıtlaması da dosya sistemleri arasında geçiş yapılamamasıdır. Bunun anlamı, / ve /usr dizinleri farklı dosya sistemlerinda bulunuyorsa /usr/bin/bash dizininin içinde /bin/bash dizininin içindeki bir dosyaya katı bağlantı yapamazsınız.

Sembolik bağlantılar

Pratikte, sembolik bağlantılar katı bağlantılardan çok daha sık kullanılırlar. Sembolik bağlantılar özel bir tip dosya olup başka bir dosyaya doğrudan inode üzerinden değilde ismi ile ilişkilenirler. Sembolik bağlantılar bir dosyanın silinmesine engel olmazlar, hedef dosya ortadan kaybolursa, sembolik bağlantı kullanılamaz hale gelir ya da ”kırılır”.

Sembolik bağlantılar, devamı

Bir sembolik bağlantı ln komutuna -s parametresi verilerek yaratılabilir.

ls -l çıktısında sembolik bağlantılar normal dosyalardan üç şekilde ayırdedilebilir. Birincisi, bu çıktıdaki ilk sütun dosyanın bir sembolik bağlantı olduğunu belirtmek için l karakterini farkedebilirsiniz. İkincisi,sembolik bağlantının boyutu ilişkilendiği hedef dosyasının karakter sayısını verir (yukarıdaki örnekte ikincilink). Üçüncüsü, son kolon hedef dosyanın ismini görüntüler.

Sembolik Bağlantılar, Ayrıntılar

Sembolik bağlantılar genelde katı bağlantılardan daha esnektir. Dizinler de dahil olmak üzere herhangi bir çeşit dosya sistemi nesnesi için sembolik bağlantı yaratmanız mümkündür. Ayrıca, sembolik bağlantıların yürütülmesi yollara bağlı olduğu için, mükemmel bir şekilde başka bir dosya sistemi üzerinde yer alan nesneye de sembolik bağlantı oluşturabilirsiniz. Fakat bu durum da sembolik bağlantının anlaşılmasını biraz zorlaştırabilir.

Sembolik Bağlantılar, Ayrıntılar

/tmp isimli dizin altında, /usr/local/bin isimli dizine sembolik bağlantı yaratmak istediğimiz bir durum düşününüz. Bu durumda yazmamız gereken:

Sembolik Bağlantılar, Ayrıntılar

Gördüğünüz gibi, her iki sembolik bağlantı da aynı dizini göstermektedir. Fakat, eğer ikinci sembolik
bağlantı başka bir dizin içerisine taşınırsa, bu bağlantı bağıl yol yüzünden ”kırılmış” (broken) olacaktır.

/tmp/usr/local/bin dizini mevcut olmadığı için, artık bin2 bağlantısı ile dizin değiştiremeyiz. Bir başka deyişle bin2 bağlantısı artık kırılmıştır.

Sembolik Bağlantılar, Ayrıntılar

Bu yüzden bazen bağıl yol bilgisi ile sembolik link yaratmaktan kaçınmak iyi bir fikir olabilir. Fakat sembolik linklerin kullanışlı olduğu bir çok durum da vardır. /usr/bin altında yer alan bir program için başka bir isim yaratmak istediğiniz bir örneği ele alalım:

Sembolik Bağlantılar, Ayrıntılar

root kullanıcısı olarak, ”.Xdefaults” için ”xd” adında başka bir isim yaratmak istiyor olabilirsiniz. Bu örnekte, komut satırlarında yer alan # işaretinden de açıkça anlaşıldığı gibi root haklarına sahibiz

Bu çözüm çalışacak olsa da, her iki dosyayı da /usr/local/bin altına taşımaya karar verdiğimiz anda bu durum problem yaratacaktır:

Çünkü sembolik bağlantımız için tam yol kullanmış durumdayız, xd halen /home/knoppix/.Xdefaults dosyasını göstermektedir ki bu bağlantı artık mevcut değildir, yani kırılmıştır. Bağıl yol ve tam yolların her ikisinin de çok faydalı olduğu durumlar vardır. Sonuçta kendi uygulamanıza en uygun olan tipi seçmeniz gerekmektedir. Genellikle bağıl yol ya da tam yol düzgün bir şekilde çalışır. Bu durumda aşağıdaki örnek çalışacaktır:

RM

Artık cp, mv ve ln komutlarının nasıl kullanıldığını biliyoruz, şimdi nesneleri dosya sistemi üzerinde kaldırmayı öğrenmenin zamanı gelmiştir. Normalde bu işlem rm komutuyla yapılmaktadır. Dosyayı kaldırmak için basitçe bunları komut satırında belirlemek gerekmektedir.

RMDİR

Dizinleri kaldırmak için iki seçeneğiniz var. Dizinin altındaki bütün nesneleri yok edebilir ve sonra rmdir kullanarak dizinin kendisini kaldırabilirsiniz:

RM ve dizinler

rm komutunun özyineli seçeneklerini kullanıp rm’e belirttiğiniz dizini içerdiği nesnelerle birlikte kaldırmasını söyleyebilirsiniz:

Genel olarak bir dizin ağacını kaldırmak için tercih edilen rm -rf ’dir. rm -f kullanırken dikkatli olun, çünkü bunun gücü iyi veya kötü niyetli olarak kullanılabilir.

Bu serimizinde sonuna geldik bir sonraki serimizde ” JOKER KARAKTERLER VE DÜZENLİ İFADELER” konularından devam edicez

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

0