Eu não estou realmente claro qual é o seu problema, mas se você está tentando copiar para o diretório atual, use apenas .
para se referir ao diretório atual para que seu comando seja:
scp -i key.pem abc@xyz:/tmp/*.doc .
Há uma coleção de arquivos .doc
, além de outros tipos de arquivos, em um servidor remoto (que suporta SCP).
Eu estou tentando escrever um script para recuperar o arquivo .doc
mais recente (modificado mais recentemente) do servidor remoto. O caminho para o diretório de trabalho atual não pode ser absoluto, pois meu script pode ser implantado em outro servidor.
Eu sou capaz de resolver o problema parcialmente em duas etapas:
Copie todos os arquivos .doc
do servidor remoto para minha pasta ~/Downloads
local:
scp -i key.pem abc@xyz:/tmp/*.doc ~/Downloads/
Selecione o arquivo mais recente em ~/Downloads
e copie-o para a pasta desejada:
cd ~/Downloads
latest_file=$(ls -t *.doc | head -n 1)
cp -p "$latest_file" /current working directory
Como posso copiar o arquivo .doc
mais recente presente no servidor remoto xyz sob a pasta /tmp
para minha máquina local em uma única instrução sem fazer o download de todos eles em uma pasta intermediária?
Vamos ver se isso resolverá seu problema. Faça um script.
FILE='ssh abc@xyz ls -ht /tmp/*.doc | head -n 1'
rsync -avz -e ssh abc@xyz:"$FILE" .
Isso executará um comando no servidor remoto "ls -ht /tmp/*.doc | head -n 1" e mostrará o documento mais recente. Rsync que o arquivo especificado do servidor remoto para o seu diretório atual. O ssh / rsync também lhe pedirá uma senha para o usuário "abc", melhor é usar um login sem senha ou um keyfile "key.pem".