Без -d new-session будет автоматически присоединяться к новому сеансу (вы, вероятно, не хотите вложенные сеансы *, таким образом, предупреждение). Что вы, вероятно, хотите сделать, это создать новый «отдельный» сеанс, а затем переключить текущий клиент на этот новый сеанс. Я не думаю, что new-session имеет опцию для обработки этого варианта использования, но это довольно легко сделать с помощью небольшого количества сценариев оболочки:
tmux-new() {
  if [[ -n $TMUX ]]; then
    tmux switch-client -t "$(TMUX= tmux -S "${TMUX%,*,*}" new-session -dP "$@")"
  else
    tmux new-session "$@"
  fi
}
# example usage:
tmux-new -s new
Если TMUX отсутствует, просто запустите tmux new … Иначе,
- снимите TMUX, чтобы избежать ошибки † при использовании -Sдля указания на текущий сервер,
- добавить -dдля создания отдельного сеанса и
- добавьте -Pчтобы вывести имя нового сеанса (для этого требуется tmux 1.8 или новее).
Вывод (имя нового сеанса) затем передается switch-client .
Если у вас нет tmux 1.8, вам, возможно, придется немного переработать его (например, заставить функцию принимать обязательный аргумент, который называет новый сеанс, чтобы вы могли передать его как new-session и switch-client).
* У вас будет две строки состояния; сложно вводить команды tmux для внутреннего сеанса; и это может сделать странные вещи, если вы переключите внутренний клиент для просмотра внешнего сеанса (подумайте: зеркальный зал).
† Может быть, предупреждение должно быть подавлено при использовании -d ...