linux cd到包含该文件的文件夹

时间:2016-04-30 16:52:21

标签: linux terminal

有文件路径我想去文件目录。完整路径是这样的:

/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

1 个答案:

答案 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 ... ]