[英]Writing a bash script to rename files sequentially in current directory and sub-directories
[英]Bash ~ Access directory that may change, from script within sub-directories of directory
我對bash及其工作方式有些陌生,但是我想知道bash中是否有訪問目錄的地址,該目錄可能由於用戶在bash中的安裝位置而改變。 (這種情況一直發生,所以一定有)
例如:我有一個程序,其目錄為../program-directory/..
但是,然后用戶將程序文件下載到/extra-directory/
從而導致我們存在/extradirectory/program-directory
然后我有一個運行在../program-directory/script-directory/script/example.bash
的bash腳本
然后,我想從example.bash
腳本中grep -rnw 'sample text' /program-directory
有沒有一種簡單的方法可以在program-directory
grep而不用擔心用戶在哪里安裝該程序
僅供參考,我查看了一個Bash腳本可以告訴它存儲在哪個目錄中嗎? 但我需要到grep ../program-directory
從一個名為的子目錄腳本../program-directory
如果您的程序位於/some/example/dir/program-directory/script-directory/script/example.bash
並且您要在文件/some/example/dir/program-directory/sample.txt
上運行grep
,則您用bash代碼編寫:
main() {
local DIR="$(dirname "$0")"
local DIR="$(cd "${DIR}" && pwd)"
cd "${DIR}"
grep 'search term' -- ../../sample.txt
}
上面的代碼有許多變體,它們的含義相同或含義略有不同。 編寫此代碼是為了清楚和正確處理帶有空格和特殊字符的目錄名稱。 這段代碼故意忽略了currend工作目錄(據我所知,這是您想要的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.