Когда я набираю ls
в bash, он должен получить имена файлов и каталогов в алфавитном порядке по умолчанию.
К сожалению, я получаю следующий результат:
-- --- 00 -01 01 -02
В результате я ожидал:
-- --- -01 -02 00 01
Символы -
в именах файлов мешают правильной работе сортировки по умолчанию.Мне нужно, чтобы имена файлов были отсортированы тем же способом, что и php strcmp
.
Почему символ -
вызывает проблемы с сортировкой?Есть ли другие символы, которые могут вызвать проблемы?Как лучше всего использовать bash для точной сортировки имен файлов?
Редактировать
Команда ls
возвращала те же неверные результаты на моем домашнем компьютере с Manjaro
имой сервер резервного копирования, использующий команду ltfp
.
Использование LC_ALL=C ls -1
в качестве paxdiablo , предложенного в его ответе, работает при тестировании на Majaro, но не повезло заставить его работать при использовании lftp
:
echo $(lftp -e "set ftp:ssl-force true; set ssl:verify-certificate no; cd "$1"; LC_ALL=C ls" -u $username,$password $server)
Редактировать - Решено
В lftp
, cls -l
получает правильный заказ и с полной информацией, которая мне нужна.
echo $(lftp -e "set ftp:ssl-force true; set ssl:verify-certificate no; cd "$1"; cls -l" -u $username,$password $server)