查詢 Linux 執行程序的當前工作目錄


簡介

在 Linux 系統上處理程序時,一項基本任務是確定程序的當前工作目錄。當前工作目錄,也稱為“當前目錄”或“當前工作資料夾”,是程序執行並與檔案互動的目錄。瞭解程序的當前工作目錄對於多種用途都很有用,例如除錯、瞭解程序執行的環境或只是監控程序的活動。

在本文中,我們將討論如何在 Linux 上查詢正在執行的程序的當前工作目錄。我們將介紹幾種可用於完成此任務的方法,包括使用ps命令、lsof命令和/proc檔案系統。

使用 ps 命令

ps 命令是一個標準的命令列實用程式,用於顯示系統上當前正在執行的程序的資訊。ps 可以顯示的資訊之一是程序的當前工作目錄。要使用 ps 查詢程序的當前工作目錄,可以使用以下命令:

$ ps -o cwd -p PID

其中PID是要查詢其當前工作目錄的程序的 ID。例如,要查詢 PID 為1234的程序的當前工作目錄,可以使用以下命令:

$ ps -o cwd -p 1234

“-o”選項允許我們指定 ps 的輸出格式,而 cwd 引數告訴 ps 顯示程序的當前工作目錄。

以下是使用ps命令查詢程序當前工作目錄的示例:

$ ps -o cwd -p 1234
CWD
/home/user/process

在此示例中,PID 為 1234 的程序的當前工作目錄為/home/user/app

使用 lsof 命令

在 Linux 上查詢程序當前工作目錄的另一種方法是使用 lsof 命令。lsof代表“list of open files”(開啟檔案列表),是一個命令列實用程式,用於顯示系統上程序當前開啟的檔案資訊。lsof 可以顯示的資訊之一是程序的當前工作目錄。

要使用lsof查詢程序的當前工作目錄,可以使用以下命令:

$ lsof -a -d cwd -p PID

其中PID是要查詢其當前工作目錄的程序的 ID。例如,要查詢 PID 為1234的程序的當前工作目錄,可以使用以下命令:

$ lsof -a -d cwd -p 1234

-a 選項告訴 lsof AND 以下選擇條件,而“-d”選項指定我們要顯示的描述符型別。在這種情況下,cwd 描述符表示程序的當前工作目錄。

以下是使用lsof命令查詢程序當前工作目錄的示例:

$ lsof -a -d cwd -p 1234

使用 /proc 檔案系統

在 Linux 上查詢程序當前工作目錄的另一種方法是使用/proc檔案系統。/proc檔案系統是一個虛擬檔案系統,它提供對核心和系統上執行的程序的檢視。它為每個正在執行的程序包含一個目錄,並且每個目錄都包含有關程序的資訊,例如其環境、開啟的檔案和當前工作目錄。

要使用/proc檔案系統查詢程序的當前工作目錄,可以使用以下步驟:

查詢我們要查詢其當前工作目錄的程序的程序 ID。我們可以使用前面部分中描述的pslsof命令來執行此操作。

更改到程序的/proc目錄。這是透過輸入以下命令完成的:

$ cd /proc/PID

其中PID是要查詢其當前工作目錄的程序的 ID。

顯示cwd 符號連結的內容。程序的/proc目錄中的 cwd 符號連結指向程序的當前工作目錄。要檢視“cwd”符號連結的內容,可以使用以下命令:

$ readlink cwd

以下是使用/proc檔案系統查詢程序當前工作目錄的示例:

$ cd /proc/1234
$ readlink cwd
/home/user/process

在此示例中,PID 為1234的程序的當前工作目錄為/home/user/app

結論

在本文中,我們討論瞭如何在 Linux 上查詢正在執行的程序的當前工作目錄。我們介紹了三種不同的方法:使用 ps 命令、lsof 命令和 /proc 檔案系統。每種方法都有其優點和缺點,合適的方法將取決於手頭業務的具體要求和限制。無論使用哪種方法,能夠找到程序的當前工作目錄都是處理 Linux 系統上的程序時非常有用的工具。

更新於:2023年1月25日

7K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.