Linux下find命令在根目錄下查找不到文件
阿新 • • 發佈:2018-12-29
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命令在根目錄下查找不到文件