Showing posts with label mlocate. Show all posts
Showing posts with label mlocate. Show all posts

Sunday, May 23, 2010

檔案搜尋指令whereis, locate, find, which

給未來的裕翔

鳥哥建議先用whereis和locate, 找不到再考慮用find

當我whereis xxx的時候

會列出最後路徑最後一欄含有xxx的

如果是locate xxx

則路徑當中有etc的都會列出

ex:

which ps

=> /bin/ps

whereis

=> ps: /bin/ps /usr/share/man/man1/ps.1.gz

Friday, March 19, 2010

locate搭配regexp找header檔

給未來的裕翔

如果想要找header

locate .h一定會跑出很多不要的東西

建議搭配regexp, -r

locate -r \.h
這樣會有問題, 要加引號, 單引號雙引號皆可
問題的來源我猜是反斜線被shell用, 而不是regexp, 不過沒特地去驗證


locate -r '\h'
這樣會有問題, .html檔也會被找出來, 要加行尾符號, $


locate -r '\h$'
這樣會有問題, 副檔名hpp的也是header檔, 要標示p的存在可能


locate -r '\hp*$'
這樣應該就沒問題了^^


如果我只要找/home/bob/Downloads/OpenCV-2.0.0底下的header


locate -r '\.hp*$' | grep '/home/bob/Downloads/OpenCV-2.0.0'

如果我想看哪些header檔內容定義我要的關鍵字, ex: lrint

grep lrint $(locate -r '\.hp*$' | \grep '/home/bob/Downloads/OpenCV-2.0.0' ) | grep def
(定義可能是typedefdefine, 所以我在最後加grep def)

注意: 上例如果沒有前面的\.

那所有檔案或路徑還有h的都會被找出來

因為p*是可不存在的