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コマンドを実行するサブシェルが元のディレクトリが復元された状態で終了したためであることがわかりました。

それでは、どのように目標を達成できますか?

答え1

スクリプトファイルではなくシェル関数(.bashrcなど)で作成してください。

関連情報