Özet
ln [-L | -P | -s [-F]] [-f | -iw] [-hnv] kaynak_dosya [hedef_dosya]
ln [-L | -P | -s [-F]] [-f | -iw] [-hnv] kaynak_dosya ... hedef_dizin
link kaynak_dosya hedef_dosya
Açıklama
ln yardımcı programı, hedef_dosya ile belirtilen dosya adı için yeni bir dizin girdisi (bağlanmış dosya) oluşturur. Oluşturulan hedef_dosya, kaynak_dosya ile aynı dosya izin modlarına sahip olacaktır.
Bu işlem, "kopyalar" için ek disk alanı harcamadan bir dosyanın aynı anda birden fazla yerde barındırılmasına imkan tanır.
İki tür bağlantı vardır:
- Sabit Bağlantılar (Hard Links): Orijinal dizin girdisinden ayırt edilemez. Dosyada yapılan herhangi bir değişiklik, hangi adla erişilirse erişilsin anında yansır. Dizinler sabit bağlanamaz ve sabit bağlantılar farklı dosya sistemleri arasında geçiş yapamaz.
- Sembolik Bağlantılar (Symbolic Links / Soft Links): Bağlı olduğu dosyanın yol adını (dizge olarak) içerir. Sembolik bağlantılar dosya sistemleri arasında geçiş yapabilir ve dizinleri de referans alabilir.
Yardımcı program link olarak çağrıldığında (veya link syntax'ı kullanıldığında), tam olarak iki argüman sağlanmalıdır ve bunlardan hiçbiri dizin olamaz. link(2) sistem çağrısını doğrudan yürüten bu basit modda hiçbir seçenek (flag) kullanılamaz.
Seçenekler
-F: Hedef dosya zaten mevcutsa ve bir dizinse, bağlantının kurulabilmesi için onu kaldırır.-Fseçeneği,-fveya-iseçeneklerinden biriyle birlikte kullanılmalıdır. Ne-fne de-ibelirtilmişse,-fvarsayılır.-sbelirtilmediği sürece hiçbir işlem yapmaz (no-op).-L: Sembolik bir bağlantıya sabit bir bağlantı oluştururken, sembolik bağlantının hedefine (bağlandığı dosyaya) sabit bir bağlantı oluşturur. Varsayılan davranış budur. Bu seçenek-Pseçeneğini geçersiz kılar.-P: Sembolik bir bağlantıya sabit bir bağlantı oluştururken, sembolik bağlantının kendisine (dosya adına) sabit bir bağlantı oluşturur. Bu seçenek-Lseçeneğini geçersiz kılar.-f: Hedef dosya zaten mevcutsa, bağlantının kurulabilmesi için onun bağını kaldırır (unlink). Bu seçenek önceki tüm-ive-wseçeneklerini geçersiz kılar.-h/-n: Eğerhedef_dosyaveyahedef_dizinbir sembolik bağlantısa, onu takip etmez (hedefini çözmez). Bu seçenek, bir dizine işaret edebilecek bir sembolik bağlantıyı değiştirmek için en çok-fseçeneğiyle birlikte kullanışlıdır.-i: Hedef dosya mevcutsa standart hataya bir onay istemi yazdırır. Standart girdiden gelen yanıt 'y' veya 'Y' karakteri ile başlıyorsa, bağlantının kurulabilmesi için hedef dosyanın bağını kaldırır. Aksi takdirde bağlantı kurma girişiminde bulunmaz. Bu seçenek önceki tüm-fseçeneklerini geçersiz kılar.-s: Sabit bağlantı yerine sembolik bir bağlantı (soft/symlink) oluşturur.-v: Ayrıntılı (verbose) modda çalışarak dosyaları işlendikçe standart çıktıya yazdırır.-w: Oluşturulan bir sembolik bağlantının kaynağı şu anda mevcut değilse bir uyarı mesajı verir.
Örnekler
Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:
/usr/srcdizinine işaret eden/home/srcadında bir sembolik bağlantı oluşturma:ln -s /usr/src /home/srcBir programın yeni sürümüne sabit bağlantı (hard link) oluşturma:
ln /usr/local/bin/fooprog-1.0 /usr/local/bin/fooprogfoosembolik bağlantısını dizin derinliğine takılmadan zorlayarak (-f) yenibazdizinine yönlendirme:ln -shf baz foo[!NOTE]
-hseçeneği olmasaydı, bu işlemfoo'yubaz'a yönlendirmek yerine,foo'nun işaret ettiği mevcut hedef dizininin içindebazadında yeni bir sembolik bağlantı oluşturacaktı.Sabit bağlantıların inode numaralarını kontrol ederek aynı fiziksel dosyaya işaret ettiğini doğrulama:
ls -i /bin/[ /bin/testÇıktı örneğinde her iki dosyanın da aynı inode numarasına (örneğin
11553) sahip olduğu görülür./bin/[aslında [test(1)] komutunun if bloklarında daha doğal kullanılabilmesi için oluşturulmuş bir sabit bağlantıdır.lnargüman sırasını hatırlamak için cp(1) komutunu düşünün: İlk argüman (kaynak) her zaman mevcut olmalıdır, ikinci argüman (hedef) ise oluşturulacak olandır.
Uyumluluk
-h, -i, -n, -v ve -w seçenekleri standart dışıdır. Yalnızca diğer ln uygulamalarıyla uyumluluk amacıyla sunulmuşlardır. -F seçeneği ise bir FreeBSD uzantısıdır.
Ayrıca Bakınız
link(1), cp(1), ls(1), readlink(1), link(2), lstat(2), stat(2), symlink(2), symlink(7)