我有一个第 3 方 SFTP 服务器,我想在其上检查一些文件时间戳。
但是,如果我使用ls -l
vs. ,我确实会为同一个文件得到不同的结果ls -lh
:
sftp> ls -l
[...]
-rwxrwxrwx 1 0 0 1963 Nov 15 08:49 foo.txt
[...]
sftp> ls -lh
[...]
-rwxrwxrwx 0 0 0 1.9K Nov 15 07:49 foo.txt
[...]
sftp> ls -l foo.txt
-rwxrwxrwx 0 0 0 1963 Nov 15 07:49 foo.txt
sftp> ls -lh foo.txt
-rwxrwxrwx 0 0 0 1.9K Nov 15 07:49 foo.txt
如您所见,时间戳 inls -l
是08:49
而其他命令具有07:49
. 服务器在德国,目前比 UTC 晚 1 小时,所以我的猜测是07:49
UTC 而08:49
柏林时间。
但是,我的机器是 UTC:
$ cat /etc/timezone
Etc/UTC
我的理解是,根据 SFTP 标准,所有时间戳都应该是 UTC。但是我不确定这种理解是否正确(鉴于标准有很多不同的版本)。我也不知道该sftp
工具是否以某种方式对时间戳进行了后处理(man sftp
根本没有提到时区或时间戳)。
造成这种差异的原因可能是什么?