ln Komutu ve Kullanımı
ln
komutunu dosyalar arasında linklendirme yapmak (bağlantı oluşturmak) için kullanıyoruz1. Link oluşturulduğunda oluşturulan dosya hedeflenip (TARGET) bu hedefle ilişki kuran bir link ortaya çıkmakta.
Link TARGET’ın adını (LINKNAME) almakta ve hedef dosyaya ait dizin yolunu barındırmakta. Temelde ön tanımlı olarak hard link oluşuturan ln komutu -s
(–symbolic) opsiyonu ile özelleştirilerek sembolik (soft) linkledirme yapabilmekte. Hard link oluşturulma aşamasında TARGET’ın tanımlı bir hedef olması gerekli.
ln İle Symbolic ve Hard Link İşlemleri
ln
komutunun temel kullanımı şu şekildedir.
ln [OPTION]... TARGET [...] [LINKNAME [...]]
Öncelikle symbolic ve hard link tanımlamalarına bakalım. Bir symbolic link hedef dosya/klasör için oluşturulmuş, hedef dosyanın isim ve güncel dizin bilgisini barındıran bir kısayol olarak ifade edilebilir. Hard link’ler ise dosyalar için şu anda bulunduğu fiziksel yola bağlantı yaparlar. Örneklerle inceleyelim.
ln -s ./img/*.jpg ../shortcuts
Yukarıdaki komut img klasörü altındaki tüm *.jpg
dosyalar için bir üst dizinde yer alan shortcuts klasörü içerisinde sembolik linkler oluşturacaktır. Oluşturulacak sembolik dosyalarla doğrudan kaynak dosyaya erişilebilir. Hard link ise -s
kullanmamıza gerek yoktur, komut sonrasında dosyalar belirtilen dizinde oluşturacaktır.
ln ./img/*.jpg ../shortcuts
Symbolic ve hard link işlemleri aynı dizin içerisinde tekrarlanamaz. Ek olarak, klasör ve partition için hard link yaratılamaz. Symbolic linkler ilişkili oldukları dosya/klasör yer değiştirdiğinde işlemez hale gelirler. Ancak, hard linkler dosyanın fiziksel konumuna bağlantı yaptığı için ilişkilerini devam ettirebilirler. Hard linklerden biri silindiğinde hepsi silinmez, referans olan veri korunduğu için diğer hard link üzerinden görüntülenmeye devam edilecektir.
ln İle Symbolic ve Hard Link Kullanımı
Sembolik linkler özellikle uzun dosya yolları yerine kullanıldıklarında oldukça zaman kazandırmaktadırlar. Örneğin documents/researches/references/marketing/strategy/2014/October/17
yolu yerine oluşturacağımız bir symbolic link (Örneğin drrms141017
) aynı işlevi görecektir.
ln -s documents/researches/references/marketing/strategy/2014/October/17 drrms141017
cd documents/researches/references/marketing/strategy/2014/October/17
cd drrms141017
unlink drrms141017
Bu arada, symbolic link esasında hedef olarak dizin hedefli olsa da yapısı itibariyle bir dosya. Bu nedenle linklendirildiği klasörü silmek için rmdir kullanmak gerekirken symbolic link silinirken rm
komutunu kullanabilirsiniz. İlişkilendirildiği dosya bağlantısını ise unlink
ile kaldırabilirsiniz.