Tim*_*Tim 11 shell directory filenames variable
假设file存储一个非目录文件的路径名。
我怎样才能得到它的父目录?
为什么通过附加/..到其值的以下方式不起作用
$ cd $file/..
cd: ./Tools/build.bat/..: No such file or directory
Run Code Online (Sandbox Code Playgroud)
谢谢。
ilk*_*chu 23
假设
$ file=./Tools/build.bat
Run Code Online (Sandbox Code Playgroud)
使用POSIX 兼容外壳(包括 zsh):
$ echo "${file%/*}"
./Tools
Run Code Online (Sandbox Code Playgroud)
与dirname:
$ echo "$(dirname -- "$file")"
./Tools
Run Code Online (Sandbox Code Playgroud)
(至少 GNUdirname需要选项,因此--在路径以破折号开头的情况下是必需的。)
这对于命令 dirname 非常简单,只需执行以下操作:
cd "$(dirname -- "$file")"
Run Code Online (Sandbox Code Playgroud)
现在你甚至可以更进一步
file=/home/switch87/.bashrc
cd "$(dirname -- "$file")"
cd "$(dirname -- "$file")"/..
Run Code Online (Sandbox Code Playgroud)
第一张 cd 会让你到 /home/switch87,第二张到 /home