이 이상한 동작을 관찰하고 있지만 설명을 찾을 수 없습니다.
$ 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기준.