有文件路径我想去文件目录。完整路径是这样的:
/Users/user1/Documents/workspace/project/src/file.py
我想在终端中转到包含此文件的文件夹。 在这种情况下,它将是:
/Users/user1/Documents/workspace/project/src/
现在我必须将文件粘贴到终端,删除文件名并执行cd。像:
cd /Users/user1/Documents/workspace/project/src/
是否有命令/任何方式我可以跳过删除文件并使用智能命令知道它应该转到包含此文件的目录?
我必须每天检查很多文件,每次从路径中删除文件名都变得非常繁琐。
期望的行动将是这样的:
>>smart_cd /path/to/file.py
>>pwd
/path/to
答案 0 :(得分:2)
假设您正在使用Bash:您可以加入~/.bashrc
function smart_cd() {
cd "$(dirname $1)"
}
然后:(重新加载你的.bashrc后)
$ smart_cd /Users/user1/Documents/workspace/project/src/file.py
奖励:您还可以替换cd
命令来处理普通和智能 cd
:
function cd() {
if [ -d $1 ] ; then
builtin cd "$1"
else
builtin cd "$(dirname $1)"
fi
}
有关man test
[ -d ... ]