В 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 - Если есть и то и другое, вам нужно было найти какую-то альтернативу (вместо вас я поискал более интеллектуальный инструмент сортировки).