masalah diselesaikan dengan indah. Terima kasih untuk semua orang yang membalas.
lukmac
8
Saat saya mengomentari jawaban yang dihapus, Anda dapat menggunakan -xtype luntuk hanya menemukan daftar symlink
Hasturkun
Anda mungkin ingin mengulang, karena file mana pun yang mengarah ke foo.txt mungkin sendiri diarahkan oleh beberapa tautan lain ... mis: A-> B-> foo.txt, / tmp / C-> B-> foo.txt, dll.
Olivier Dulac
ini juga dapat berfungsi jika komponen nama Anda adalah direktori induk yang dinamai dalam tautan, dengan mencari find . -lname '*foo.dir*'(misalnya cocok file.txt -> ../foo.dir/file.txt)
Yonatan
22
Temukan nomor inode file dan kemudian cari semua file dengan nomor inode yang sama:
Jika menggunakan versi terbaru GNU find, Anda juga dapat menggunakan -samefileopsi dengan -Luntuk efek yang sama, tanpa harus mencari inode sendiri
Hasturkun
5
Tetapi ini juga akan menemukan file di sistem file lain yang kebetulan memiliki nomor inode yang sama.
DigitalRoss
Jika fooadalah direktori, gunakan ln -di, dalam satu baris:find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
rubo77
1
Jawaban ini salah. Sebuah symlink tidak memiliki inode yang sama dengan targetnya. Ini hanya akan berfungsi untuk file di dalam folder symlink. Tapi bukan ini yang diminta.
Jules Lamur
4
Saya lebih suka menggunakan symlinksutilitas, yang juga berguna saat mencari symlink yang rusak. Instal oleh:
sudo apt install symlinks
Tampilkan semua symlink di folder dan subfolder saat ini:
symlinks -rv .
-r: rekursif
-v: verbose (tampilkan semua symlink, tidak hanya yang rusak)
Jawaban:
Itu tergantung, jika Anda mencoba menemukan tautan ke file tertentu yang dipanggil
foo.txt,
maka ini adalah satu-satunya cara yang baik:Di sisi lain, jika Anda hanya mencoba menemukan tautan ke file apa pun yang kebetulan diberi nama
foo.txt
, maka sesuatu sepertiatau
sumber
-xtype l
untuk hanya menemukan daftar symlinkfind . -lname '*foo.dir*'
(misalnya cocokfile.txt -> ../foo.dir/file.txt
)Temukan nomor inode file dan kemudian cari semua file dengan nomor inode yang sama:
Sebagai alternatif, coba
lname
opsifind
, tetapi ini tidak akan berfungsi jika Anda memiliki symlink relatif misalnyaa -> ../foo.txt
sumber
-samefile
opsi dengan-L
untuk efek yang sama, tanpa harus mencari inode sendirifoo
adalah direktori, gunakanln -di
, dalam satu baris:find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
Saya lebih suka menggunakan
symlinks
utilitas, yang juga berguna saat mencari symlink yang rusak. Instal oleh:Tampilkan semua symlink di folder dan subfolder saat ini:
-r
: rekursif-v
: verbose (tampilkan semua symlink, tidak hanya yang rusak)Untuk menemukan symlink tertentu, cukup
grep
:sumber