1. 程式人生 > >Linux下find命令在根目錄下查詢不到檔案

Linux下find命令在根目錄下查詢不到檔案

  你遇到過linux下root使用者執行find命令按檔名在根目錄下查詢不到指定檔案的情況嗎?如果你遇到這種情況,你分析可能有哪幾種原因導致?這裡記錄一下這個有意思的問題,包括問題場景和解決方法。

問題現象

  實現一個工具,需要在root命令下執行普通使用者user1下的stop_proc命令。執行命令為su - user1 -c "stop_proc"。結果返回command not found。計劃使用stop_proc的絕對路徑進行呼叫。

  (1)開始執行which stop_proc檢視,沒有找到。咦。。

  (2)執行whereis stop_pro,也沒找到。汗。。

  (3)切換root使用者,執行find / -name "stop_proc"查詢,也沒有記錄輸出。三連擊。。mengbi了。

問題分析

   有點搞不清楚狀況了。。stop_proc命令明明可以執行,還能使用tab鍵聯想,但是which沒有顯示路徑。find / 也找不到。什麼原因?有什麼特殊許可權可以不讓find出來?開始查資料搜尋中。。結果是什麼都沒找到。

  最後諮詢同事,才搞明白。內建函式或者alias別名find命令就可能搜尋不到。在普通使用者user1下,執行type stop_proc。發現這果真是一個別名。

問題解決

  呼叫命令就直接使用完整命令問題就解決了。