나는 그것을 몇 달 동안 사용해왔는데 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
또한 귀하 $@
의 것은 아마도 "$@"
.