tmuxセッションのデフォルトディレクトリを取得するには?

tmuxセッションのデフォルトディレクトリを取得するには?

私はそれを数ヶ月間使用してきましたが、tmux1つの問題がありました。cdシェルに何かを入力すると、私のホームディレクトリに移動します(これは標準的な動作なのでcd驚くことではありません)。
私が望むのは、現在のtmuxセッションのデフォルトディレクトリに入ることです。

cd () {
   if [ $# -eq 0 ]
   then
      command cd $TMUX_BASE_DIR # fictional environment variable
   else
      command cd $@
}

しかし、そのディレクトリを見つける方法が見つかりませんでした。 tmuxには組み込みコマンドはなく、環境変数も設定しません。また、マニュアルページを見ましたが、COMMANDSセクションでVARIABLES何も見つかりませんでした。ただし、新しいtmuxウィンドウを開くとこのディレクトリにリダイレクトされるため、このディレクトリをどこかに保存する必要があります。
もちろん、必要な動作を達成しようとするたびに新しいウィンドウを開閉しますが、これは確かに最適ではなく、より良い方法が必要です。

この動作を達成したり、tmuxからセッションベースディレクトリを取得する方法はありますか?それでは、どうすればいいですか?

ベストアンサー1

私のtmux(1)マニュアルにはaが書かれているので、session_path「tmux path session report」スクリプトのようなものを使って保存できます。

#!/bin/sh
TMPFILE=`mktemp /tmp/tps-report.XXXXXXXXXX` || exit 1
tmux run "printf '#{session_path}\n' > \"$TMPFILE\""
cat "$TMPFILE"
rm $TMPFILE

また、あなた$@のものはおそらく"$@"

おすすめ記事