Когда запускается ваш псевдоним, ssh ... "cd ...; commands using backquote that I can't easily show on Stack"
который дает команду вашей оболочке запускать ls ... | ...
конвейер с обратными кавычками локально, который находит имя самого нового файла в вашем текущем каталоге в вашей системе и отправляет это имя как часть команды в удаленную систему, где, конечно, пытается Хвост этот файл не работает.
Ваши варианты:
# 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
В общем, вы могли бы также предоставить команду в качестве ввода для удаленной оболочки вместо командной строки (аргумент)
ssh ... <<"END" # shouldn't need -t in this case cd ...; tail -f `ls ... | ...` END
но это не сочетается с вашим очевидным, хотя и необъяснимым и необъяснимым желанием оставить bash --login
бег после выхода из tail
.
Обратите внимание, что два случая heredoc заключают в кавычки строку разделителя, так что локальная оболочка НЕ заменяет в данных обратные кавычки или некоторые другие вещи.
И во всех случаях было бы лучше использовать более новый $( ... )
синтаксис для подстановки команд вместо старого синтаксиса обратных кавычек - особенно для вопросов в стеке, где обратные кавычки мешают (намного? Больше?) Форматированию без кодового блока.