У меня есть название файла, и я должен определить то, что пакет обеспечивает ему. Если бы не то, что я должен выполнить поиск без учета регистра, хорошо работала бы следующая команда:
dpkg -S filename.txt
Это работает отлично, если файл называют 'filename.txt', но не, если это называют 'Filename.txt'.
Консалтинг со страницей справочника для dpkg
команда ничего не показывает о нечувствительной к регистру опции для команды, и меня оставляют в темноте.
Существует ли способ запросить базу данных пакета для определенного файла нечувствительным к регистру способом?
dpkg
принимает подстановочные шаблоны. Это в порядке, если Вы не знаете, имеет ли имя файла начальную заглавную букву, но оно не масштабируется.
dpkg -S '[Ff][Ii][Ll][Ee][Nn][Aa][Mm][Ee].[Tt][Xx][Tt]'
Без дополнительных инструментов можно легко воспроизвести что dpkg -S
делает внутренне:
grep -Fi filename.txt /var/lib/dpkg/info/*.list
Можно использовать dlocate для ускорения
dpkg -S
с индексом (как locate
убыстряется find /
, но Вы не получаете почти столько же с dlocate
). С тех пор dlocate
основан locate
, это принимает те же опции включая -i
для поиска без учета регистра. С тех пор dlocate
использует индекс (обычно восстанавливаемый каждую ночь), это могло бы немного устареть.
dlocate -i filename.txt
способный файл ищет имя файла во всех пакетах, которые доступны для установок. Это имеет a
-ui
опция для поиска без учета регистра.
apt-file -i search filename.txt