[英]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.