“Çok fazla sembolik bağlantı seviyesi” hatası tipik olarak sembolik bir bağlantının doğrudan veya dolaylı olarak kendisine işaret ederek sonsuz bir döngü oluşturduğu bir sorunu gösterir. Bu döngü, içeriklerin okunması veya listelenmesi gibi sembolik bağlantı içeren işlemlerin tamamlanmasını engeller. Sembolik bağlantılar oluşturmak için Linux’ta ln komutunun nasıl düzgün şekilde kullanılacağını anlamak, bu hatayı önlemek için çok önemlidir.
“Çok fazla düzeyde sembolik bağlantı” Hatasını Anlamak ve Önlemek
Bu Hataya Ne Sebep Olur?
Bu hata, sembolik bir bağlantının kendisine (doğrudan veya başka bir sembolik bağlantı aracılığıyla) geri gönderme yapması durumunda ortaya çıkar ve bu da çözülemez bir referans döngüsü oluşturur. Bu durum, başlangıç noktasına geri dönen ve hiçbir yere varmayan bir dizi yön verilmesine benzer.
Sorunlu Sembolik Bağlantı Oluşturma Örneği:
- Bir dizin oluşturun ve yeni dizine gidin:
$ mkdir /tmp/symlink_test $ cd /tmp/symlink_test
- Bir dosya ve dizin oluşturun:
$ echo "This is a test file." > testfile $ mkdir testdir
- Testdir’de kendisine işaret eden sembolik bir bağlantı oluşturun (hatalı):
$ ln -s testfile testdir/testfile
Bu komut, testdir’de ../testdir/testfile’a işaret eden bir sembolik bağlantı test dosyası oluşturmaya çalışır. Referans, sembolik bağlantının kendisine işaret ederek bir döngü oluşturur.
Sembolik bağlantıya erişmeye çalışmak bir hatayla sonuçlanır:
$ cat testdir/testfile
Nasıl Düzeltileceğine Neden Olan Sorunlu Sembolik Bağlantı Oluşturma Örneği: Çok Fazla Sembolik Bağlantı Düzeyi Hatası Bunun çıktısı şu olacaktır: cat: testdir/config: Çok fazla düzeyde sembolik bağlantı
Sembolik Bağlantıları Doğru Şekilde Oluşturmak:
Bu hatayı önlemek için, sembolik bağlantının hedefinin, sembolik bağlantının kendisine veya ona giden başka bir sembolik bağlantıya geri dönmeden, amaçlanan hedefe doğru şekilde işaret ettiğinden emin olmalısınız.
Mutlak Yolları Kullanma:
- Mutlak bir yol kullanarak sembolik bir bağlantı oluşturun:
$ ln -s /tmp/symlink_test/testfile /tmp/symlink_test/testdir/testfile2
Bu, testdir’de kesinlikle /tmp/symlink_test/testfile’a işaret eden bir sembolik bağlantı testfile2 oluşturur.
- Bu sembolik bağlantıya erişim artık test dosyası2’nin içeriğini doğru şekilde görüntülemelidir:
$ cat /tmp/symlink_test/testdir/testfile2
Bu doğru bir şekilde çıktı verecektir: Bu bir test dosyasıdır.
Mutlak yolla doğru şekilde Sembolik Bağlantılar Oluşturma
Göreceli Yolları Kullanma:
- Alternatif olarak göreceli yolu akıllıca kullanın:
$ ln -s ../testfile /tmp/symlink_test/testdir/testfile3
Bu, testdizindeki testfile3’ü, iki seviye yukarıya giden göreceli bir yol kullanarak testfile’ye ve ardından testfile’ye işaret eder.
- Sembolik bağlantıyı kontrol etmek:
$ cat testdir/testfile3
Bu doğru bir şekilde çıktı verecektir: Bu bir test dosyasıdır.
Göreceli yolla Sembolik Bağlantıları Doğru Şekilde Oluşturma
Sembolik Bağlantı Oluşturma Basitleştirildi: Doğru Yol Söz Dizimini Hatırlamak – Yazarın notları
Sembolik bağlantılarla başa çıkmak ve bunları doğru kullanmayı hatırlamak için (göreceli veya mutlak yollar kullanarak) en iyi stratejim şu sözdizimini hatırlamaktır:
$ ln -s <path to original file from the target directory whether relative or absolute> <target file or directory>
Bu örneği /home/linuxconfig/ dizini içinden ele alalım:
$ mkdir test $ echo "linuxconfig.org" > orig_file $ ln -s ../orig_file test/ $ ln -s ../orig_file test/sym_file1 $ ln -s /home/linuxconfig/../../tmp/../home/linuxconfig/orig_file test/sym_file2 $ ln -s ../../../home/linuxconfig/orig_file test/sym_file3 $ tree test/

Yukarıdaki örnekte görebileceğiniz gibi, göreceli ve mutlak yolları bile birleştirebilirsiniz; yine de sembolik bağlantı, orijinal dosyayı doğru şekilde işaret ettiği sürece çalışır. Bu anlaşılması kolay bir kavram değil, ancak ilk argümanı hedef dizinden orijinal dosyaya giden yol olarak düşünün. Hedef dizindeyseniz ln komutuna ilk argüman olarak sağlanan yolun oradan doğru olması gerekir.
Yazının orijinalini buradan takip edebilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.