GNU/Linux >> Belajar Linux >  >> Linux

Linux:Temukan semua symlink dari file 'asli' yang diberikan? (membalikkan 'tautan baca')

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"

Linux
  1. Linux Temukan Dan Hapus Semua Symlinks Yang Berkaitan Dengan Direktori?

  2. Temukan Semua File Python Di Sistem File Linux?

  3. Temukan file lalu cd ke direktori itu di Linux

  1. Cara menemukan File di Linux

  2. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  3. Cara Menemukan Semua Pengguna Sudo Di Linux

  1. Linux – Bagaimana Menemukan Tanggal Pembuatan File?

  2. Temukan File dengan Perintah Temukan dan Temukan di Linux

  3. Semua Perintah Kompres/Dekompresi Linux