繁体   English   中英

linux cd 到包含文件的文件夹

[英]linux cd to folder containing the file

有一个文件路径,我想转到文件的目录。 一个完整的路径是这样的:

/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

假设您正在使用 Bash:您可以放入~/.bashrc

function smart_cd() {
    cd "$(dirname $1)"
}

然后:(在重新加载您的 .bashrc 之后)

$ smart_cd /Users/user1/Documents/workspace/project/src/file.py

奖励:您还可以替换cd命令来处理普通和智能cd

function cd() {
    if [ $# -eq 0 ] ; then
        # no arguments
        builtin cd
    elif [ -d $1 ] ; then
        # argument is a directory
        builtin cd "$1"
    else
        # argument is not a directory
        builtin cd "$(dirname $1)"
    fi
}

有关更多信息,请参阅:

  • man bash$#特殊参数
  • man test解释[ ... -eq ... ][ -d ... ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM