Como é possível copiar o arquivo de texto mais recente de um diretório específico em um servidor remoto para sua máquina local?
No próprio servidor, posso fazer o seguinte:
$ cat 'cd /home/user/dir ; readlink -f $(ls -t | head -1)' > ~/newest.txt
Isso coloca o conteúdo do arquivo mais recente em ~/newest.txt
. No entanto, não posso executar isso por SSH porque o sistema local tenta interpretar as marcas de escala e os comandos $(*)
. Id est, isso não funciona:
$ ssh [email protected] "cat 'cd /home/user/dir ; readlink -f $(ls -t | head -1)'" > ~/newest.txt
bash: cd: /home/user/dir: No such file or directory
Connection to server.com closed.
Obviamente, /home/user/dir
não existe em minha máquina local . Eu tentei usar o SSH com o sinalizador -t
também, isso não ajudou. Como posso obter os ticks e $()
a serem analisados na máquina remota, não na minha máquina local?
Como um aparte, alguém mais esperto do que eu declarou uma vez que a saída de ls
não será analisada . Podemos seguramente assumir, para fins desta questão, que os nomes de arquivos contêm apenas caracteres ASCII imprimíveis. No entanto, as respostas que abordam o caso geral seriam ótimas, assim como eu quero aprender , não apenas passar por isso uma vez.