31
Konuya ait anahtar kelimeler : Unix/Linux Link - Kısayol Herhangi bir dosya yada klasöre ait başka bir yerde bulunan kısayol-link oluşturabilirsiniz. Bu şekilde istediğiniz isimde tanımladığınız dosya/klasöre o tanımlanan linkten ulaşabilirsiniz. Bir nevi köprü oluşturma diyebiliriz. "man ln" komutu ile özellikleri ve kullanım şekline bakabilirsiniz. Link oluşturma; ln -parametreler dosya/klasör_adi dosya/klasör_kısayolu_adi şeklinde olmaktadır. Burada parametreler bir çok değer alabilir biz bunlardan iki tanesini göstereceğiz. En fazla bu parametreler kullanılmaktadır. Hard Link : Hiçbir parametre kullanmadan link oluşturmadır. Klasörler için KULLANILMAZ, sadece dosyalar için kullanılır. Hard link ile oluşturulan kısayollar orjinal dosya içeriğini de içerirler. Sanki bir dosyanın klonunu oluşturmuş gibi. Dosya içeriği, dosya boyutu aynıdır. Not: Hard link ile oluşturulan dosya, orjinal dosya silinse dahi kendini korur. Kısayol dosyası herhangi bir değişikliğe uğramaz. Ayrıca orjinal dosyada yapılan değişikler aynen kısayol dosyasına yansıtılır. Şimdi çalışma dizini içerisinde bir adet "link" adında dosya oluşturalım ve dosya içeriği aşağıdaki gibi olsun. Dosya oluşturma işini tek seferde "nano" komutu ile yapabilirsiniz. "nano" komutu eğer dosya mevcutsa mevcut olan dosyayı açar, eğer dosya mevcut değilse dosya içeriğini kaydettiğiniz zaman dosyayı oluşturup içeriğini kaydeder. Kısaca "nano dosya_adi" komutu ile dosya oluşturma ile uğraşmanıza gerek yoktur.
[alax@alax script]$ nano link Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. [alax@alax script]$
Dosyayı "Ctrl+O" Enter ile kaydedip, "Ctrl+X" ile çıkış yapalım. Şimdi "link" dosyamıza çalışma dizini içerisinde bir adet hard link oluşturalım.
[alax@alax script]$ ln link kısayol [alax@alax script]$
Evet kısayolumuz oluştu şimdi önce orjinal dosyaya ve sonra kısayoluna bir gözatalım.
[alax@alax script]$ cat link Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. [alax@alax script]$
Şimdi kısayoluna bakalım.
[alax@alax script]$ cat kısayol Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. [alax@alax script]$
Gördüğünüz gibi iki dosya içeriği aynı. Şimdi "link" dosyasına eklemeler yapalım ve kaydedelim. Daha sonra "kısayol" dosyasına bakalım değişiklikler otomatik olarak kaydedilmiş mi?
[alax@alax script]$ nano link Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. Çatma, kurban olayım, çehreni ey nazlı hilâl! Kahraman ırkıma bir gül! Ne bu şiddet, bu celâl? Sana olmaz dökülen kanlarımız sonra helâl, Hakkıdır, Hakk'a tapan, milletimin istiklâl!
Evet orjinal dosyaya ikinci dörtlüğü de ekledik, "kısayol" dosyasına bakalım
[alax@alax script]$ cat kısayol Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. Çatma, kurban olayım, çehreni ey nazlı hilâl! Kahraman ırkıma bir gül! Ne bu şiddet, bu celâl? Sana olmaz dökülen kanlarımız sonra helâl, Hakkıdır, Hakk'a tapan, milletimin istiklâl! [alax@alax script]$
Evet kısayol linkimizde aynı değişikliğe sahip. Orjinal "link" dosyası ile bu dosyaya ait olan hard link "kısayol" dosyası içeriği aynı olur. Yani bu dosyalar birbirine bağlıdır birbirinin birebir kopyasıdır. Herhangi birinde yapılacak değişiklikler diğerine aynen yansıtılır. Şimdi "kısayol" dosyasına üçüncü dörtlüğü ekleyerek kaydedin ve "link" dosyası içeriğini kontrol edin aynı olduklarını göreceksiniz. Soft Link : "Soft link" yada "Symbolic link", basit ve sadece orjinal dosyanın adresini barındırmaktadır. İçerisinde herhangi bir veri olmaz. Masaüstünde bulunan kısayol simgelerini düşünebilirsiniz. Soft link tanımlama "-s" parametresi ile olmaktadır. Örneğin şimdi "link" dosyamız için bir adet "soft" adında sembolik link oluşturalım.
[alax@alax script]$ ln -s link soft [alax@alax script]$
Çalışma dizinimiz içerisinde "soft" adında sembolik linkimiz oluştu. Artık bu kısayol dosyası ile orjinal veriye ulaşabiliriz. Şimdi "soft" içeriğine bakalım.
[alax@alax script]$ cat soft Korkma, sönmez bu şafaklarda yüzen al sancak; Sönmeden yurdumun üstünde tüten en son ocak. O benim milletimin yıldızıdır, parlayacak; O benimdir, o benim milletimindir ancak. Çatma, kurban olayım, çehreni ey nazlı hilâl! Kahraman ırkıma bir gül! Ne bu şiddet, bu celâl? Sana olmaz dökülen kanlarımız sonra helâl, Hakkıdır, Hakk'a tapan, milletimin istiklâl! [alax@alax script]$
Yukarıda açılan dosya "soft" dosyası değil, onun gösterdiği tarif ettiği yerdeki "link" dosyasıdır. Not : Hard link ve Soft link ayrımını şu şekilde yapabiliriz. Sizin bir eviniz olsun, Hard link ile evinize ait bir kısayol oluşturduğunuz zaman evinizin yanına evinizin birebir aynısı inşa edilir, eviniz klonlanır, herşeyi içi dışı aynı bildiğiniz ikinci bir eviniz olur. Birde Soft link ile evinize ait bir kısayol oluşturursanız evinizin adresini barındıran bir link oluşmuş olur. Sadece evinizin adres bilgilerini barındıran bir kağıt parçası oluşur. Orjinal eviniz herhangi bir sebeple yıkılırsa hemen yandaki Hard link ile oluşan eve taşınabilirsiniz fakat diğer türlü eviniz yıkılır ve sizin sadece Soft link ile oluşturduğunuz kısayol var ise elinizde sadece adresinizin olduğu bir kağıt parçası kalır. Hard link ile Soft link ayrımını bu şekilde yorumlayabiliriz. Dosyalar için olduğu gibi klasörler için de Soft link ile kısayollar oluşturabilirsiniz, fakat Hard link ile klasörlere ait kısayollar oluşturamazsınız. Link kullanımı çok faydalıdır. Mesela işinize ait yada özel dosyalarınız var diyelim ve bu dosyalar sizin için çok önemli. Bu durumda farklı bir yerde dosyalarınıza ait Hard linkler oluşturarak herhangi bir kaza sonucu dosyalarınızı kaybetmeyi önleyebilirsiniz. Dikkat etmeniz gereken nokta ise, link oluştururken orjinal dosyanın tam dizin adresini yazmalısınız. Mesela, "/home/alax" dizini içerisinde bulunan "önemli dosya" adlı dosyaya ait bir Hard link tanımını; ln "/home/alax/önemli dosya" "/run/media/alax/Hard-Disk/önemli dosya" şeklinde yapmalısınız. Yukarıdaki örneklerde hep aynı dizin içerisinde çalışmalar yaptığımız için tam dizin adresi yazma gereği duymadık.