UNIX'te bir dosyaya olan tüm sembolik ve sabit bağlantıları bulma


9

Bir UNIX dosya sisteminde belirli bir dosyam varsa, o dosyaya tüm bağlantıları hem sembolik hem de zor bulmak için bash kullanmanın bir yolu var mı? Her biri için farklı komutlara ihtiyacım varsa, bunlar nedir?

Yanıtlar:


8

Bunu GNU ile deneyin find:

find /start/dir -L -samefile /file/to/check -exec ls -li {} \;

Örnek çıktı:

1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x1
1234704 -rw-r--r-- 2 user1 user1 1134 2009-09-11 11:12 ./x2
1234983 lrwxrwxrwx 1 user1 user1 2 2009-10-31 16:56 ./testx -> x1
2345059 lrwxrwxrwx 1 user2 user2 2 2010-01-03 16:17 ./x3 -> x1

Bunun -lsyerine kullanabilirsiniz , -execancak tek tek dosyalar yerine hedef dosyanın inode ve diğer bilgilerini gösterecektir.


Bu çıktı sabit ve sym bağlantıları gösteriyor? Sym bağlantıları -> ok ile gösterilir?
aaaidan

@aaaidan: Evet, doğru. X1 ve x2 inode sayısı, sabit bağlantılar olduklarını gösteren aynıdır. Ok, bir sembolik bağı gösterir. Kullanılması -Lve -samefilehem neden listelenecek. Atlarsanız, -Lsembolik bağlantılar izlenmez (bkz. man find).
sonraki duyuruya kadar duraklatıldı.

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.