我正在尝试使用 SFTP 连接执行命令ls -e
,但 -e 选项不可用。
我需要从创建文件中获取日期/时间,例如“2017 年 8 月 11 日 19:36:40”
我已经使用过ls -e
SSH 连接,但由于一些限制,我无法使用此连接。
ls -l
不是一个好的解决方案,因为超过 1 年的文件我将无法获得有关小时和秒的信息。
我正在使用带有 sftp 命令的 shell 脚本连接到远程服务器。
有人能帮我解决这种情况吗?
答案1
您可以通过 sftp 连接使用lftp
的cls
命令在本地格式化时间戳。该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,则执行等效命令)。我知道你已经尝试过了。