Existe uma maneira de fazer um "ls" remoto como o "scp" faz uma cópia remota em um shell linux padrão?
Existe uma maneira de fazer um "ls" remoto como o "scp" faz uma cópia remota em um shell linux padrão?
Respostas:
Você sempre pode fazer isso:
ssh user@host ls -l /some/directory
Isso fará o SSH para o host, executará ls, enviará a saída de volta para você e será desconectada imediatamente.
scp
e certas rsync
, talvez sftp
também, e é isso.
alias rls="ssh user@host ls -l"
Reinicie seu shell e rls /some/directory
deve funcionar.
Para listar todos os arquivos em um diretório:
rsync host.name.com:directory/path/'*'
Para algo como find directory / path -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Eu acho que isso implica que ele está usando SSH em segundo plano?
ls -l
. No meu sistema, não parece haver uma opção para listar apenas os arquivos.
Para todos que chegam pelo google a esta pergunta, porque estão procurando uma maneira de listar arquivos remotos, mas não podem acessar o servidor remoto via ssh (caso comum de servidores de backup), você pode usar o 'sftp'.
Exemplo:
sftp username@hostname.xyz
ls
cd somedir
exit
Inicie uma sessão interativa em um diretório remoto específico:
sftp [user@]host[:dir]
Acho que meu uso mais frequente disso é obter o resultado ls, uma lista simples de arquivos sem todas as permissões e datas, e mantê-lo em um arquivo local.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Você pode executar o que quiser dentro das aspas. Toda a saída termina no seu arquivo de texto local. Ou se você deseja executar um grande script desagradável no servidor e capturar toda a sua saída, até erros:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
não é necessário.