В 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, но в отсутствие этого я бы предложил:

  1. Если ваши файлы в алфавитном порядке, решение @Hyppy идеально подходит для вас.
  2. Если они числовые, а не head -1Предлагаю числовую сортировку: ls|sort -n|head -1
  3. Если есть и то и другое, вам нужно было найти какую-то альтернативу (вместо вас я поискал более интеллектуальный инструмент сортировки).
Другие вопросы по тегам