我登录 sftp:
sftp user@server
然后我运行:
ls -lt
我希望文件按日期排序。
sftp> ls -lt *.csv
-rw------- 0 76547986 200 5073032 Mar 14 08:42 file1.csv
-rw------- 0 76547986 200 5073032 Mar 15 08:41 file2.csv
-rw------- 0 76547986 200 5073032 Mar 16 08:41 file3.csv
-rw------- 0 76547986 200 5072802 Mar 17 08:42 file4.csv
-rw------- 0 76547986 200 1117736 Sep 30 14:44 file5.csv
-rw------- 0 76547986 200 1120419 Oct 2 08:45 file6.csv
-rw------- 0 76547986 200 1119763 Oct 1 08:43 file7.csv
-rw------- 0 76547986 200 5073258 Mar 13 08:41 file8.csv
但事实并非如此。
这是 OpenSSH 的版本
OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g 1 Mar 2016
知道为什么 sftp 中的 ls 日期排序不起作用吗?
注意:ls -lt 在 sftp 服务器上的 bash 中有效,但不能通过 sftp 提示符。也许是 sftp 中存在错误?
答案1
如果ls
参数包含掩码(并且掩码不与单个文件夹匹配),则所有排序标志都将被忽略。
注意缺少LS_*_SORT
标志的使用do_globbed_ls
功能。
与非全局的相反do_ls_dir
。
我觉得这似乎是一个错误。因此我发布了一个错误报告:
sftp ls 命令忽略了全局列表的排序标志
自 OpenSSH 7.6 以来已包含修复。