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?


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://user@sftp.server.org
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

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ś.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.