В Debian какая команда вернет файл с "самым маленьким" именем файла из каталога?
У меня есть каталог, содержащий три файла, например, 5.war
, 6.war
а также 7.war
,
Какая команда вернет файл с "самым маленьким" именем файла из этого каталога? (В этом случае, 5.war
.)
2 ответа
Решение
ls
сортирует по имени по умолчанию. Если нет каталогов, с которыми нужно бороться, просто сделайте это:
ls | head -1
Чтобы добавить некоторые дополнения, если вам нужно беспокоиться о каталогах, сделайте следующее:
ls -p | egrep -v /$ | head -1
К несчастью, ls
сортирует имена файлов в алфавитном порядке, что не правильно для чисел. Например, 10.war
будет раньше 2.war
что не то, что вы хотите.
Вероятно, вы можете найти какой-то, более интеллектуальный инструмент сортировки от Google, но в отсутствие этого я бы предложил:
- Если ваши файлы в алфавитном порядке, решение @Hyppy идеально подходит для вас.
- Если они числовые, а не
head -1
Предлагаю числовую сортировку:ls|sort -n|head -1
- Если есть и то и другое, вам нужно было найти какую-то альтернативу (вместо вас я поискал более интеллектуальный инструмент сортировки).