Não é possível executar ls -e via SFTP

1

Estou tentando executar o comando ls -e usando uma conexão SFTP, mas a opção -e não está disponível.

Eu preciso obter uma data / hora no arquivo de criação, por exemplo, "11 de agosto 19:36:40 2017"

Já usei o ls -e usando uma conexão SSH, mas devido a algumas restrições, não consigo usar essa conexão.

ls -l não é uma boa solução, porque os arquivos com mais de 1 ano não receberão informações sobre horas e segundos.

Estou usando um shell script com o comando sftp para conectar ao servidor remoto.

Alguém pode me ajudar com essa situação?

    
por Rui Caeiro 14.11.2017 / 10:05

2 respostas

2

Você pode usar o comando lftp cls sobre uma conexão sftp para formatar os carimbos de data e hora localmente. O comando cls tem uma opção --time-style=STYLE . O formato para STYLE é o mesmo que o comando date . Por exemplo:

lftp sftp://[email protected]
lftp sftp.server.org:~> cls -l --time-style=%FT%T file.txt
-rw-r-----   1 user   group      2032 2014-10-12T10:07:58 file.txt
    
por 14.11.2017 / 15:21
2

O cliente OpenSSH sftp não suporta a impressão de um carimbo de data e hora completo.

Se você deseja obter um registro de data e hora de arquivo completo de um servidor SFTP / SSH, terá estas opções:

  • Use um cliente SFTP diferente, como lftp (como mostra a resposta do @gogators ).
  • Use uma biblioteca SFTP em alguma linguagem de script, como Perl, Python, PHP, etc.
  • Se você tiver um acesso ao shell, use-o para executar o comando ls --full-time no servidor (ou equivalente, se o servidor não for baseado em * nix). Estou ciente de que você já tentou isso.
por 14.11.2017 / 10:25