ディレクトリ内のすべてのソフトリンクを見つける方法は?

ディレクトリ内のすべてのソフトリンクを見つける方法は?

/etcdirを例にしてみましょう。私のシステムには144のリンクがあります。 dirはハードリンクを持つことができないので(私が理解したバイム)、数字はソフト144リンク(オリジナル1つ+ソフトリンク143)を参照する必要があります。

$ ll -i
total 84
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ./
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ../
     12 lrwxrwxrwx   1 root root     7 Aug 18 01:19 bin -> usr/bin/
1048577 drwxr-xr-x   4 root root  4096 Sep  1 15:53 boot/
5636097 drwxr-xr-x   2 root root  4096 Aug 18 01:21 cdrom/
      2 drwxr-xr-x  23 root root  4920 Sep  3 11:20 dev/
 262145 drwxr-xr-x 144 root root 12288 Sep  3 09:34 etc/

私は(好奇心と将来の使用のために事前に学ぶために)ソフトリンクを追跡しようとしましたが、運がありませんでした。
努力しました -

$ sudo find  /  -not -path "/mnt/*" -samefile /etc  
/etc
find: ‘/run/user/1000/doc’: Permission denied 
...

ベストアンサー1

目次するハードリンクがありますが、ランダムではありません。各ディレクトリには親ディレクトリへのハードリンクが含まれており..、あなたのディレクトリ/etcには142のサブディレクトリがあります。残りの2つは/etcそれ自体です/etc/.

シンボリックリンクを見つけるにはfindフォローするように言わなければなりません。:

find -L / -xdev -samefile /etc

興味のないパスを除外する代わりに、目的のマウントポイントをすべて一覧表示します。はい興味があり、find他のファイルシステムに入らないように指示されました。これにより処理/procなどが防止されます。/sys

おすすめ記事