ln komutunu dosyalar arasında linklendirme yapmak (bağlantı oluşturmak) için
kullanıyoruz. 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 (
alias / takma ad) yapabilmekte. Hard link oluşturulma aşamasında TARGET’ın tanımlı bir hedef olması gerekli.
ln komutunun temel kullanımı şu şekildedir.
ln [OPTION]... TARGET [...] [LINKNAME [...]] |
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 |
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 |
ln ./img/*.jpg ../shortcuts
Unutmadan ekleyeyim,
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.
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 |
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.