Wednesday, 18 June 2014

find - tìm hoài mà không thấy

người hãy nói
vì sao em không tìm được nó là tại làm sao:
root@elasticsearch-1:~# ls -l /var/run/crond.pid ; find /var/run -name 'cron*' | wc -l
-rw-r--r-- 1 root root 6 Jun 11 12:08 /var/run/crond.pid
0

Câu lệnh trên: khi dùng lệnh ls cho thấy file  /var/run/crond.pid có tồn tại, nhưng khi dùng lệnh find thì tìm không ra.
Hacker +Lam Tung  đã tìm ra một giải pháp (thêm dấu / ở cuối path):

root@elasticsearch-1:~# find /var/run/ -name 'crond*'
/var/run/crond.reboot
/var/run/crond.pid

Bài viết thực hiện trên:
$ lsb_release -a; find --version | grep find
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.4 LTS
Release:        12.04
Codename:       precise
find (GNU findutils) 4.4.2

Vậy tại sao find lại không tìm được, sau một hồi điều tra, thám tử cô nan đã tìm ra:


root@elasticsearch-1:~# ls -l /var/run
lrwxrwxrwx 1 root root 4 Mar 28 02:43 /var/run -> /run
root@elasticsearch-1:~# find -L /var/run -name 'crond*'
/var/run/crond.reboot
/var/run/crond.pid

Vì /var/run là 1 symlink đến /run , còn lệnh find thì mặc định không "follow symlink"

-L     Follow  symbolic links.

Vậy là hết, cơn mưa ngang qua ...
:3