Linux'ta bir bağlantı, başka bir dosya veya dizine atıfta bulunan özel bir dosyadır. Bu şekilde, bir dosya aynı anda birkaç yere yerleştirilebilir. Orijinal dosya silindiğinde, ona olan bağlantı korunur. Bu, çökmelere neden olabilir ve genellikle sistemi tıkar.
Başlangıç olarak, dosyanın gerçekten bir bağlantı olup olmadığını kontrol etme yöntemini açıklayalım. Bu, ls
yardımcı programı kullanılarak rahatlıkla yapılır. Bundan sonra, her biri kendine özgü özelliklere sahip üç kaldırma yöntemine bakalım.
ls
yardımıyla dosya hakkındaki bilgileri görmek uygundur. Yardımcı programı kullanmak için -l
seçeneğini verin ve yolu belirtin. Örnek olarak ~/symlinks/link_1
dosyasını ele alalım:
$ ls -l ~/symlinks/link_1
Bağlantılar için tüm bir kataloğu kontrol edebilirsiniz:
$ ls -l ~/symlin
Gerekli olmayan bir dosya, adından sonra karakteristik bir ok ile işaretlenir.
rm
komutu, bağlantılar da dahil olmak üzere Linux dosya sistemindeki herhangi bir dosyayı silmek için kullanılabilir. Yani bizim görevimiz için uygundur. Burada, bağlantının silinmesi sonucunda orijinal dosya veya dizinin etkilenmeyeceğini belirtmek önemlidir.
Terminalde komutu çalıştırın:
$ rm ~/symlinks/link_1
Ayrıca, prosedür hakkında ayrıntılı bilgi almak için komuta -v
seçeneğini ekleyin:
$ rm -v ~/symlinks/link_1
Ek olarak, bağlantının dizinden kaybolup kaybolmadığını kontrol edebilirsiniz. Bunu yapmak için, daha önce açıklanan ls
komutunu kullanın.
Artık bir Linux sembolik bağlantısını nasıl kaldıracağınızı biliyorsunuz.
Unlink
yardımcı programı Linux dosya sisteminden dosyaları kaldırmak için tasarlanmıştır. Yalnızca bağlantının yolunu belirtmesi gerekir:
$ unlink ~/symlinks/link_1
Elinizdeki görev kapsamında, rm ve unlink neredeyse aynı şekilde çalışır. Şimdi son yönteme geçelim.
find
komutu yardımıyla belirli bir dizindeki bağlantıları arayabilir ve silebilirsiniz. Bu, ayrıca ls
kullanmanıza gerek olmadığı anlamına gelir.
Önceki iki seçenekten farklı olarak, arama kriterlerini ayarlamak gibi oldukça gelişmiş özelliklere sahiptir. Ancak sözdizimi de bu nedenle o kadar basit değildir.
Arama yapmak için bir dizin ve birkaç parametre belirtmeniz gerekir:
$ find ~/symlinks/ -type l -print
Yalnızca sembolik bağlantıları seçmek için -type l
parametresi, tam adın çıktısını almak için -print
gereklidir. Ve -maxdepth
yardımıyla iç içe dizinlere göre arama derinliğini belirleyebilirsiniz. Eğer 1 olarak belirtirseniz, arama ekler olmadan sadece dizinin kendisi üzerinde gerçekleştirilecektir:
$ find ~/symlinks/ -maxdepth 1 -type l -print
Dizinde çok sayıda bağlantı olduğunda, find
komutu için bir arama kalıbı belirleyebilirsiniz. Örnek olarak, yalnızca son değiştirilme tarihi en fazla 30 gün önce olan gizli bağlantıları bulmak istediğimiz bir durumu ele alalım:
$ find ~/data/ -type l -name ".*" -mtime -30 -print
İki kriter eklenmiştir:
-name - isme
göre arama.mtime -
değişiklik zamanına göre.Bulunan tüm bağlantılar belirtilen kalıba göre silinebilir. Bu amaçla -print
yerine -delete
kullanılır:
$ find ~/data/ -type l -name ".*" -mtime -30 -delete
Talimatın sonunda, örneğin orijinal dosya veya dizin silindikten sonra hiçbir yere gitmeyen kırık bağlantıları arama ve silme ile ilgilenelim. xtype l
parametresi bu amaç için uygundur. -print
çıktı için gerekli değildir:
$ find ~/broken_links/ -xtype l
Sonuç olarak, tüm kırık bağlantılar terminalde görüntülenecektir. Bunları kaldırmak için komutun sonuna -delete
ekleyin:
$ find ~/broken_links/ -xtype l -delete
Bu, Linux'ta bir bağlantıyı silme talimatlarını tamamlar.