"/var/찾기" 대 "/var/run/ 찾기"

"/var/찾기" 대 "/var/run/ 찾기"

이 이상한 동작을 관찰하고 있지만 설명을 찾을 수 없습니다.

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

하지만

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

두 번째 문은 아무것도 반환하지 않는 반면, 첫 번째 문은 /var/run/에 파일이 있음을 강조합니다.

여기서 무슨 일이 일어나고 있는 걸까요?

답변1

적어도 우분투 1 에서는 /var/run심볼릭 링크/run

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

find명령에는 매뉴얼 페이지에 설명된 대로 기호 링크 처리를 제어하는 ​​두 가지 옵션이 있습니다.

   -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]. 사실 이것 때문에 그런 것 같다.리눅스 FHS 3.0기준.

관련 정보