tmux 세션의 기본 디렉터리를 얻는 방법은 무엇입니까?

tmux 세션의 기본 디렉터리를 얻는 방법은 무엇입니까?

나는 그것을 몇 달 동안 사용해왔는데 tmux한 가지 문제가 있었습니다. 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

또한 귀하 $@의 것은 아마도 "$@".

관련 정보