Quando o seu alias executar ssh ... "cd ...; commands using backquote that I can't easily show on Stack"
que comanda seu shell para executar o backquoted ls ... | ...
pipeline localmente , que localiza o nome do arquivo mais recente em seu diretório atual em seu sistema e envia esse nome do arquivo como parte do comando para o sistema remoto, onde é claro que tentar acompanhar esse arquivo não funciona.
Suas opções são:
# ugly quoting to work with doublequotes
alias logger='ssh ... "cd ...; tail -f \'ls ... | ...\'; bash --login"'
# shell function or script, which let you use clearer singlequotes
logger(){
ssh ... 'cd ...; tail -f 'ls ... | ...'; bash --login'
}
# or
cat <<"END" >logger # use some dir (early) in $PATH
ssh ... 'cd ...; tail -f 'ls ... | ...'; bash --login'
END
chmod +x logger
Em geral, você também pode fornecer o comando como entrada para o shell remoto em vez de uma linha de comando (argumento)
ssh ... <<"END" # shouldn't need -t in this case
cd ...; tail -f 'ls ... | ...'
END
mas isso não combina com seu desejo aparente, embora não mencionado e inexplicável, de deixar bash --login
em execução após sair do tail
.
Note que os dois casos heredoc citam a string do delimitador para que o shell local NÃO substitua o backquote, ou certas outras coisas, dentro dos dados.
E em todos os casos, seria melhor usar a sintaxe $( ... )
mais recente para a substituição de comandos, em vez da antiga sintaxe de backquote - especialmente para perguntas no Stack em que os backquotes interferem na formatação sem codeblock (muito? mais?).