所以我知道Linux中相對路徑的基礎知識......
- ./表示相對于當前檔案夾的路徑
- ../表示相對于父檔案夾的路徑
但是如果我想運行相對于父檔案夾的可執行檔案(./exeToRun)怎么辦?我用三個點嗎?
例子
檔案結構
project
│ README.md
│ file001.txt
│
└───folder1
│ │ exeToRun
│ │ file012.txt
│ │
│ └───subfolder1
│ │ myScript.py
│ │ file112.txt
│ │ ...
│
└───folder2
│ file021.txt
│ file022.txt
如果我想從 myScript.py 呼叫./exeToRun可執行檔案,相對而言,我會假設語法是.../folder1/exeToRun. 兩個點是因為它相對于父檔案夾,一個點是因為它是可執行檔案。
現在我知道這是不正確的,但我正在尋找有關如何正確實作此功能的一些說明。
uj5u.com熱心網友回復:
你會使用兩個點 ( ../exeToRun); 沒有額外的“點,因為它是一個可執行檔案”,這只是一個簡單的路徑。
在通常情況下./exeToRun,單點僅表示“在當前檔案夾中”,而不是關于可執行檔案的內容。需要它的原因是,如果命令不包含顯式路徑(即至少一個“/”),系統將在您的各種二進制目錄$PATH(即 /bin、/usr/bin 等)中查找它); ./通過明確地說“在當前目錄中......”將可執行檔案名稱放在前面
但是,當您使用.并且..喜歡這樣時,它們相對于行程的當前作業目錄,這不一定是您的腳本所在的目錄。如果您cd進入腳本的目錄并使用 運行它./scriptname,那么是的,它將是腳本的目錄,但是如果您在其他地方并通過其路徑運行腳本......那么腳本的作業目錄將是您運行腳本時碰巧在的任何地方。
如果要運行相對于腳本目錄的可執行檔案,則需要首先找到腳本的目錄,這并不總是容易(甚至不可能)。請參閱“如何從腳本本身獲取 Bash 腳本的源目錄?” 和BashFAQ #28:如何確定腳本的位置?
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441509.html
上一篇:比較兩個檔案名并提取差異
