Назад | Перейти на главную страницу

ls -lt не работает в SFTP

Вхожу в 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.