1

Я пытаюсь выполнить команду ls -e используя соединение SFTP, но опция -e недоступна.

Мне нужно получить дату / время из файла создания, например, «11 августа 19:36:40 2017»

Я уже использовал ls -e используя SSH-соединение, но из-за некоторых ограничений я не могу использовать это соединение.

ls -l не очень хорошее решение, потому что файлы старше 1 года не будут получать информацию о часах и секундах.

Я использую скрипт оболочки с командой sftp для подключения к удаленному серверу.

Может ли кто-нибудь помочь мне в этой ситуации?

2 ответа2

2

Вы можете использовать команду lftp cls через соединение sftp для локального форматирования временных меток. Команда cls имеет параметр --time-style=STYLE . Формат для STYLE такой же, как и у команды date . Например:

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 клиент не поддерживает печать полной отметки времени.

Если вы хотите получить полную временную метку файла с сервера SFTP/SSH, у вас есть следующие варианты:

  • Используйте другой SFTP-клиент, такой как lftp (как показывает ответ @gogators ).
  • Используйте библиотеку SFTP в некоторых скриптовых языках, таких как Perl, Python, PHP и т.д.
  • Если у вас есть доступ к оболочке, используйте его для выполнения команды ls --full-time на сервере (или эквивалентной, если сервер не * nix-based). Я знаю, что вы уже попробовали это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .