如何使用 KDialog 更改工作目录?

如何使用 KDialog 更改工作目录?

用例:我正在 /path/with/a/very/long/name 的终端中工作,我想更改为深度嵌套的其他目录。但凭记忆我不知道那条路。因此,我想通过 GUI 进行浏览,以便找出需要导航的位置。

我想出了这个脚本:

#!/bin/sh
echo "change working directory"
MYDIRECTORY=$(kdialog --getexistingdirectory ::label1);
if [ "$?" = 0 ]; then
    cd "$MYDIRECTORY"
elif [ "$?" = 1 ]; then
    echo "action canceled";
else
    echo "ERROR";
fi;
exit 0

不幸的是,它不起作用。当脚本退出时,我保留在终端的原始目录中。我了解到这是因为执行 cd 命令的子 shell 退出时恢复了我的原始目录。

那么我怎样才能实现我的目标呢?

答案1

将其编写为 shell 函数(例如在 .bashrc 中)而不是脚本文件。

相关内容