Nie można uruchomić ls -e przez SFTP

1

Próbuję wykonać polecenie ls -e używając połączenia SFTP, ale opcja -e nie jest dostępna.

Muszę uzyskać datę / godzinę z pliku tworzenia, na przykład „11 sierpnia 19:36:40 2017”

Użyłem już ls -e używając połączenia SSH, ale z powodu pewnych ograniczeń nie mogę użyć tego połączenia.

ls -l nie jest dobrym rozwiązaniem, ponieważ pliki starsze niż 1 rok nie otrzymają informacji o godzinach i sekundach.

Używam skryptu powłoki z poleceniem sftp, aby połączyć się ze zdalnym serwerem.

Czy ktoś może mi pomóc w tej sytuacji?

Rui Caeiro
źródło
Czy mógłbyś wyjaśnić oprogramowanie klienckie, którego używasz?
Burgi
Nie używam żadnego konkretnego klienta. Używam tylko skryptu powłoki i używam komendy sftp do łączenia się ze zdalnymi serwerami.
Rui Caeiro
Powinieneś edytować Twoje pytanie, aby dołączyć te informacje. Proszę zobaczyć Jak zapytać i weź naszą wycieczka .
Burgi

Odpowiedzi:

2

Możesz użyć lftp jest cls polecenie przez połączenie sftp, aby sformatować znaczniki czasu lokalnie. The cls polecenie ma --time-style=STYLE opcja. Format dla STYLE jest taki sam jak date dowództwo. Na przykład:

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
gogators
źródło
2

OpenSSH sftp klient nie obsługuje drukowania pełnego znacznika czasu.

Jeśli chcesz uzyskać pełny znacznik czasu pliku z serwera SFTP / SSH, masz następujące opcje:

  • Użyj innego klienta SFTP, jak lftp (jako odpowiedz @gogators przedstawia).
  • Użyj biblioteki SFTP w niektórych językach skryptowych, takich jak Perl, Python, PHP itp.
  • Jeśli masz dostęp do powłoki, użyj go do wykonania ls --full-time polecenie na serwerze (lub równoważne, jeśli serwer nie jest * oparty na nix). Wiem, że już to próbowałeś.
Martin Prikryl
źródło