Menggunakan GNU find
, ini akan menemukan file yang ditautkan atau disinkronkan ke file:
find -L /dir/to/start -samefile /tmp/orig.file
Saya belum melihat perintah untuk ini dan ini bukan tugas yang mudah, karena file target tidak berisi informasi tentang file sumber mana yang menunjuk ke sana.
Ini mirip dengan tautan "keras" tetapi setidaknya itu selalu berada di sistem file yang sama sehingga Anda dapat melakukan find -inode
untuk membuat daftar mereka. Tautan lunak lebih bermasalah karena dapat melintasi sistem file.
Saya pikir apa yang harus Anda lakukan pada dasarnya adalah melakukan ls -al
pada setiap file di seluruh hierarki Anda dan gunakan grep
untuk mencari -> /path/to/target/file
.
Misalnya, ini yang saya jalankan di sistem saya (diformat agar mudah dibaca - dua baris terakhir itu sebenarnya ada di satu baris di output nyata):
pax$ find / -exec ls -ald {} ';' 2>/dev/null | grep '\-> /usr/share/applications'
lrwxrwxrwx 1 pax pax 23 2010-06-12 14:56 /home/pax/applications_usr_share
-> /usr/share/applications
Terinspirasi oleh komentar Gordon Davisson. Ini mirip dengan jawaban lain, tetapi saya mendapatkan hasil yang diinginkan menggunakan exec. Saya memerlukan sesuatu yang dapat menemukan tautan simbolis tanpa mengetahui di mana file aslinya berada.
find / -type l -exec ls -al {} \; | grep -i "all_or_part_of_original_name"