cd 到文件绝对路径上最深目录的最简单方法是什么?

cd 到文件绝对路径上最深目录的最简单方法是什么?

例如,我的剪贴板上可能有以下内容:

/Users/matt/widgets/file.txt

我想将目录更改为:

/Users/matt/widgets

cd不起作用:

$ cd /Users/matt/widgets/file.txt
bash: cd: /Users/matt/widgets/file.txt: Not a directory

我可以做哪些简单的(即易于键入的)更改来使这变得容易?

答案1

如果您同意预先加载工作以使后续运行更容易,您可以创建一个函数(将其命名为对您有意义的名称):

function cdfile { cd -- "$(dirname $1)"; }

将这样的定义保存到您的~/.bashrc文件中。然后,每次你有一个你想要的文件路径时cd,你可以

cdfile <paste path>

答案2

使用目录名:

cd "$(dirname /Users/matt/widgets/file.txt)"

答案3

cd $(dirname /Users/matt/widgets/file.txt)

相关内容