Dosyayı ve tüm bağlantıları kaldırma - sert ve sembolik


1

Dosyayı ve kaldırılacak dosyayla ilgili tüm bağlantıları nasıl kaldırabilirim?

rm -f file.txtsadece dosyayı siler. Dahası, dosya sisteminin başka sert bağlantıları varsa, dosya kaldırılmaz.

Bunu yapmanın en kullanışlı yolu nedir?

Veya dosyanın linklerinin tam listesini almak için bir komut olabilir.

Yanıtlar:


2

ls -li filenameDosyanın inode'unu almak için kullanın . Sonra find <the same filesystem> -inum <inode>aynı inode ile dosyaları almak için

Bu, dosyanın tüm kopyalarını bulmanızı sağlar (sabit bağlantılar). Yumuşak linkler ilgi çekici değildir çünkü sadece orijinal dosyaya işaret ederler


1
... orjinal dosya ismini gösterirler . Ama cevabı kabul ediyorum.
rici

1

Bir dosyadaki tüm bağlantıları sert ve sembolik olarak bulmak için , aşağıdaki gibi ve seçenekleriyle findkomutu kullanın :-L-samefile

find / -L -samefile file.txt

Bu dosyaları tek bir komutla silmek rmiçin find -deleteeylemle veya eylemle birleştirebilirsiniz , ancak önce silinecek dosyaların listesini incelemeden bunu yapmak beni endişelendirir. Ayrıca, eğer tüm bağlantıları bulamadan önce file.txt dosyasını kaldırırsanız, bağlantıları bulmak çok daha zor olacaktır.


1
-LArama yolunu öncesinde gerekir, ancak sembolik bağlantılar diğer dosya sistemlerine arama alabilir gibi ben bunu önermiyoruz. Kullanmak daha iyi find <File System root> -lname "*FileName" -exec ls -l {} \;. *Bağlantı Basit bir isim olarak belirtilmiş ya da (mutlak veya göreceli) bir dizin yolu öncesinde olabilir çünkü, ama yanlış bulur verebilir - önünde fazladan karakter veya başka dizinlere aynı adla isimleri: lsgöstereceğim Bağlantının ne içerdiğini ve vurgulama, dosyayı ve sabit bağlantıları sildikten sonra komutu çalıştırdığınızda hangilerinin ölü olduğunu gösterecektir.
AFH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.