Если файлы находятся в текущем рабочем каталоге и их имена соответствуют образцам (одиночный дефис перед числом), следующий POSIX-совместимый конвейер должен работать:
ls | sort -t- -k1,1 -k2,2rn | awk -F- 'k!=$1 {print; k=$1}' | pax -rw /path/to/dir
Компонент awk можно заменить с помощью sort -u, если параметр sort -u является стабильным (так, чтобы для представления этого набора всегда выбиралась первая строка набора). POSIX не требует такой стабильности, но, согласно их руководствам, реализации BSD и GNU {Free, Net, Open} обеспечивают ее. Если вам нравится искушающая судьба:
ls | sort -t- -k1,1 -k2,2rn | sort -mut- -k1,1 | pax -rw /path/to/dir
В любом случае целевой каталог не должен находиться в текущем рабочем каталоге.
modules.dep
перечисляет зависимости каждого отдельного модуля , доступного в вашей системе, а не только тех, которые используются в вашей системе. В нем также перечислены модули, у которых нет зависимостей, что увеличивает его длину. В настоящее время пакеты ядра дистрибутива обычно содержат тысячи модулей, поэтому для modules.dep
совершенно нормально иметь тысячи строк (по одной на каждый доступный модуль ).
Модули ядра предоставляют различные услуги :они могут содержать аппаратные драйверы, общий код, совместно используемый несколькими драйверами, файловые системы...