无法通过 SFTP 运行 ls -e

无法通过 SFTP 运行 ls -e

我正在尝试使用 SFTP 连接执行命令ls -e,但 -e 选项不可用。

我需要从创建文件中获取日期/时间,例如“2017 年 8 月 11 日 19:36:40”

我已经使用过ls -eSSH 连接,但由于一些限制,我无法使用此连接。

ls -l不是一个好的解决方案,因为超过 1 年的文件我将无法获得有关小时和秒的信息。

我正在使用带有 sftp 命令的 shell 脚本连接到远程服务器。

有人能帮我解决这种情况吗?

答案1

您可以通过 sftp 连接使用lftpcls命令在本地格式化时间戳。该cls命令有一个--time-style=STYLE选项。 的格式STYLE与命令相同date。例如:

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

答案2

OpenSSHsftp客户端不支持打印完整的时间戳。

如果您想从 SFTP/SSH 服务器获取完整的文件时间戳,您可以选择以下选项:

  • 使用不同的 SFTP 客户端,例如lftp@gogators 的回答显示)。
  • 使用某些脚本语言中的 SFTP 库,例如 Perl、Python、PHP 等。
  • 如果您有 shell 访问权限,请使用它ls --full-time在服务器上执行命令(如果服务器不是基于 *nix,则执行等效命令)。我知道你已经尝试过了。

相关内容