1. 程式人生 > >Linux下find命令在根目錄下查找不到文件

Linux下find命令在根目錄下查找不到文件

comm which user 搜索 and 返回 咨詢 問題解決 not

你遇到過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。發現這果真是一個別名。

問題解決

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

Linux下find命令在根目錄下查找不到文件