Belge

Nasıl düzeltilir: Too Many Levels of Symbolic Links Error

“Ç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:

  1. Bir dizin oluşturun ve yeni dizine gidin:
    $ mkdir /tmp/symlink_test
    $ cd /tmp/symlink_test
  2. Bir dosya ve dizin oluşturun:
    $ echo "This is a test file." > testfile
    $ mkdir testdir
  3. 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
    Example of Problematic Symlink Creation causing How to Fix: Too Many Levels of Symbolic Links Error
    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:

  1. 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.

  2. 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.

     

    Correctly Creating Symlinks with absolute path
    Mutlak yolla doğru şekilde Sembolik Bağlantılar Oluşturma

Göreceli Yolları Kullanma:

  1. 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.

  2. Sembolik bağlantıyı kontrol etmek:
    $ cat testdir/testfile3

    Bu doğru bir şekilde çıktı verecektir: Bu bir test dosyasıdır.

     

    Correctly Creating Symlinks with relative path
    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/
Symbolic Link Creation Simplified: Remembering the Correct Path Syntax
Sembolik Bağlantı Oluşturma Basitleştirildi: Doğru Yol Söz Dizimini Hatırlamak

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.