Вхожу в 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
Любая идея, почему сортировка даты для ls в sftp не работает?
ПРИМЕЧАНИЕ: ls -lt работает в bash на сервере sftp, но не через приглашение sftp. Может баг в sftp?
Если ls
аргумент включает маску (и маска не соответствует только одной папке), все флаги сортировки игнорируются.
Обратите внимание на отсутствие LS_*_SORT
флаги используются в do_globbed_ls
функция.
В отличие от не глобальных do_ls_dir
.
Мне это кажется ошибкой. Поэтому я опубликовал отчет об ошибке:
Команда sftp ls игнорирует флаги сортировки для глобального списка
Исправление включено, начиная с OpenSSH 7.6.