spot_img
Thursday, April 25, 2024
spot_img
HomeTechBilgi TeknolojisiLinux'ta Bozuk Sembolik Bağlantıları Bulma ve Silme

Linux’ta Bozuk Sembolik Bağlantıları Bulma ve Silme

-

Linux dizüstü bilgisayarda bir terminal penceresi.
Fatmawati Achmad Zaenuri / Shutterstock

Linux’taki sembolik bağlantılar harika bir özelliktir, ancak bozulabilir ve hiçbir şeyi göstermeden bırakılabilirler. Kırık sembolik bağlantıları nasıl bulacağınız, gözden geçireceğiniz ve gerekirse sisteminizden nasıl kaldıracağınız aşağıda açıklanmıştır.

Sembolik Bağlantılar 101

“Yumuşak bağlantılar” ve “sembolik bağlantılar” olarak da adlandırılan sembolik bağlantılar, dosyalara ve dizinlere işaret edebilen bir kısayol biçimidir. Bir sembolik bağ, bir dosya yöneticisi penceresindeki normal bir dosya veya dizine benzer. Ayrıca, bir terminal penceresindeki bir dosya listesinde bir girdi olarak görünür. Sembolik bağın işaret ettiği dosya veya dizin, dosya sistemi ağacının herhangi bir yerinde olabilir.

Örneğin, ana dizininizde dosya sistemi ağacında başka bir yerde bulunan “metin-dosya.txt” adlı bir dosyaya işaret eden “dave-link” adlı bir sembolik bağınız olduğunu varsayalım. Sembolik bağda kullandığınız komutlar, işaret ettiği dosyaya otomatik olarak uygulanır. Kullanmaya çalışırsan cat veya less sembolik bağda, aslında “metin-dosyası.txt” dosyasının içeriğini göreceksiniz.

Standart bir Linux kurulumu birçok sembolik bağlantı içerir. Kendiniz oluşturmasanız bile, işletim sistemi bunları kullanır. Uygulama yükleme rutinleri, çalıştırılabilir dosyalara işaret etmek için genellikle sembolik bağlar kullanır. Yazılım güncellendiğinde, ikili dosya yeni sürümle değiştirilir ve yeni dosyanın adı eski ile aynı olduğu sürece tüm sembolik bağlantılar eskisi gibi çalışmaya devam eder.

Kullanarak bazı sembolik bağları kolayca görebiliriz ls kök dizinde. Girişlerden bazıları farklı bir renkte görüntülenir – Ubuntu 20.10 test makinemizde, bunlar açık mavi renkte görüntülenir.

Aşağıdakileri yazıyoruz:

ls /

ls / bir terminal penceresinde.

Kullanarak daha derinlemesine bakabiliriz -l (uzun liste) seçeneği. Tüm “lib” girişlerine ve tek “bin” girişine bakmak için aşağıdaki komutu yazıyoruz:

ls -l /lib* /bin

ls -l / lib * / bin bir terminal penceresinde.

Her satırın başında, öğenin bir sembolik bağ olduğunu belirten bir “l” vardır. “->” işaretinden sonraki metin sembolik bağın neyi işaret ettiğini gösterir. Örneğimizde, hedeflerin tümü dizinlerdir.

İzinler, sahip, grup ve diğerleri için okuma, yazma ve yürütme olarak listelenir. Bunlar varsayılan sahte girişlerdir. Sembolik bağlantıların işaret ettiği nesneler üzerindeki gerçek izinleri yansıtmazlar. Öncelikli olan ve dosya sistemi tarafından kabul edilen hedef dosya veya dizindeki izinlerdir.

Bozuk Sembolik Bağlantılar

Bir sembolik bağ, işaret ettiği dosya silindiğinde veya başka bir konuma taşındığında kopar (veya sol sallanır). Bir uygulamanın kaldırma rutini düzgün çalışmazsa veya tamamlanmadan kesilirse, kırık sembolik bağlantılarla baş başa kalabilirsiniz.

Bir kişi sembolik bağları göstermeden bir dosyayı elle silerse, bu sembolik bağlar artık çalışmayacaktır. Buldozerli bir kasabayı gösteren yol işaretleri gibi olacaklar.

Mevcut dizinde “merhaba” adlı bir sembolik bağ kullanarak bu davranışı kolayca görebiliriz. Aşağıdakileri kullanarak yazıyoruz ls görmek için:

ls -l

“Bin” adlı bir dizindeki “htg” adlı bir programa işaret ediyor. Sembolik bağlantıyı “çalıştırırsak”, programı bizim için çalıştırır:

./hello

Şimdi, programı doğrudan çalıştırarak bunun olup olmadığını kontrol edebiliriz:

../bin/htg

Beklendiği gibi aynı yanıtı alıyoruz. Program dosyasını silelim:

rm ../bin/htg

Simdi sembolik bağa baktığımızda, onun kırmızıyla listelendiğini görüyoruz çünkü Linux onun bozuk olduğunu biliyor. Ayrıca bize eskiden neyi işaret ettiğini söyler, böylece dosyayı değiştirebilir, programı yeniden derleyebilir veya sembolik bağlantıyı onarmak için ne gerekiyorsa yapabiliriz.

Sembolik bağı çalıştırmaya çalışırsak, aldığımız hatanın sembolik bağın işaret ettiği programın adı yerine sembolik bağ adını referans aldığına dikkat edin.

Aşağıdakileri yazıyoruz:

./hello

ls -l bir terminal penceresinde.

Bozuk Sembolik Bağlantıları Bulma

En modern versiyonları find var xtype (genişletilmiş tip) seçeneği, bozuk sembolik bağları bulmayı kolaylaştırır. Kullanacağız l ile bayrak xtype, bağlantı aramasını söylemek için. Kullanma find ve xtype aşağıdaki gibi, diğerleri olmadan type bayraklar, kuvvetler xtype bozuk bağlantıları döndürmek için:

find . -xtype l

bir terminal penceresinde -xtype l'yi bulun.

Komutu test ana dizinimizde çalıştırmak epeyce bozuk sembolik bağlantı bulur. Aramanın varsayılan olarak yinelemeli olduğunu, bu nedenle tüm alt dizinleri otomatik olarak aradığını unutmayın.

Bilerek bozduğumuz “merhaba” sembolik bağlantı, beklediğimiz gibi listelenir. Diğer sembolik bağlantılardan biri Firefox tarayıcısıyla, geri kalanı ise snap’lerle ilişkilidir.

Çıkışı kanalize edersek wc ile -l (çizgiler) seçeneği, kesik sembolik bağları saymakla aynı olan satırları sayabiliriz.

Aşağıdakileri yazıyoruz:

find . -xtype l | wc -l

bul.  -xtype l |  wc -l bir terminal penceresinde.

Hiçbir şeyi işaret eden 24 bozuk sembolik bağımız olduğu konusunda bilgilendirildik.

Bul, İncele ve ardından Kaldır

Acele etmeden ve tüm bozuk sembolik bağları silmeden önce, aşağıdaki sonuçlara bakın: find komut. Bozuk sembolik bağlantılardan herhangi birinin geçerli bir nedeni olup olmadığına bakın.

Bazen sorun, hedef dosyadan ziyade sembolik bağlantı olabilir. Sembolik bağlantı yanlış oluşturulmuşsa hiçbir şeye işaret etmeyebilir, ancak gerçek hedef mevcuttur. Sembolik bağın yeniden oluşturulması bu durumda çözüm olacaktır.

Görünüşe göre bozuk bir sembolik bağın başka bir şey olarak kullanılması da mümkündür, örneğin bir dosya kilidi göstergesi veya başka bir devam / gitme göstergesi gibi. Firefox bunu yapar; listemizdeki ilk sembolik bağlantı budur. Firefox test makinemizde kullanılmıyor, bu yüzden onu silmemiz güvenlidir.

Hedefin yalnızca periyodik olarak mevcut olması da mümkündür ve bu, söz konusu yazılımın beklenen (ve istenen) davranışıdır. Belki hedef dosya başka bir makineden veya buluttan kopyalanır, işlevini yerine getirir ve sonra tekrar silinir, ancak sonraki döngüde farklı bir programla değiştirilir.

Bozuk sembolik bağlantı, başarısız olan bir yazılım kurulumunun da belirtisi olabilir. Bu durumda, sembolik bağlantıyı silmek yerine ya elle düzeltmeli ya da kurulumu tekrar etmelisiniz.

Tutmanız gereken bozuk bağlantıları düzelttiğinizde, aramayı gerçekleştirmek için komutu tekrarlayın. Sabit sembolik bağlar daha sonra arama sonuçlarında olmamalıdır.

Güvenlik adına, sembolik bağlantı kaldırma işlemlerinizi kendi dizinlerinizle sınırlamak en iyisidir. Bu komutları kök olarak veya sistem dizinlerinde çalıştırırken son derece dikkatli olun.

Bozuk Sembolik Bağlantıları Kaldırma

-exec (yürüt) seçeneği, komutları find Arama Sonuçları. Kullanacağız rm bozuk her sembolik bağlantıyı silmek için. {} string, her biri tarafından keşfedildiğinden, her kopuk sembolik bağın adı ile değiştirilir. find.

Noktalı virgül kullanmalıyız (;) istediğimiz komutların listesini sonlandırmak için -exec koşmak. Ters eğik çizgi kullanacağız () noktalı virgülden “kaçmak” için, bu nedenle find bir şey yerine komut Bash harekete geçmeli.

Aşağıdakileri yazıyoruz:

find . -xtype l -exec rm {} ;

bul.  -xtype l -exec rm {} ;  bir terminal penceresinde.

Herhangi bir şey olduğuna dair hiçbir gösterge olmadan komut istemine geri döndük. Bozuk bağlantıların kaldırıldığını doğrulamak için, bunları arama komutunu aşağıdaki gibi tekrar ederiz:

find . -xtype l

bul.  -xtype l bir terminal penceresinde.

Eşleşen sonuç yok, bu da bozuk sembolik bağlantıların kaldırıldığı anlamına gelir.

Önce İncelemeyi Unutmayın

Yine, silmek için komutu çalıştırmadan önce sembolik bağlantıların listesini her zaman gözden geçirin. Uygun dizinlerde silme komutunu çalıştırarak emin olmadığınız herhangi bir şeyi silmekten kaçınabilirsiniz.

Örneğin, yukarıda, komutu “.snap” dizininde çalıştırabilir ve sonra tek başına “merhaba” sembolik bağlantıyı manuel olarak kaldırabilirdik. Bu, Firefox kilit sembolik bağlantısına dokunulmazdı.

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
spot_img

Latest posts