「/var/runch」と「/var/run/を探す」

「/var/runch」と「/var/run/を探す」

この奇妙な動作を観察していますが、説明が見つかりませんでした。

$ find /var/run/ -name reboot-required 2>/dev/null 
/var/run/reboot-required

しかし、

$ find /var/ -name reboot-required 2>/dev/null
$ 

2番目のステートメントは何も返しませんが、最初のステートメントは/var/run/にファイルがあることを強調します。

ここで何が起こっているのでしょうか?

ベストアンサー1

少なくともUbuntu 1では、/var/runシンボリックリンク/run

$ ls -l /var/run
lrwxrwxrwx 1 root root 4 Jun 29 14:05 /var/run -> /run

このfindコマンドには、マニュアルページに記載されているようにシンボリックリンクの処理を制御する2つのオプションがあります。

   -P     Never follow symbolic links.  This  is  the  default  behaviour.

   -L     Follow symbolic links.  

そのため、実行するとfind /var/ -name reboot-requiredリンクがクリックされず、ファイルが見つかりません。代わりに を実行すると、find /var/run/ -name reboot-requiredシンボリックリンクの「反対側」で検索が開始されます(find /run -name reboot-required実行したように)。以前は確立された。

-Lフラグを追加すると、あいまいさが解決されます。

find -L /var/ -name reboot-required 2>/dev/null


[1]。実はこれのせいでそういうことだ。Linux FHS 3.0基準。

おすすめ記事