Для системы, использующей диспетчер пакетов RPM (yum), например (здесь) CentOS, используйте yum предоставляет
или yum whatprovides
:
provides or whatprovides
Is used to find out which package provides some feature or
file. Just use a specific name or a file-glob-syntax wildcards
to list the packages available or installed that provide that
feature or file.
Для pcresyntax
вы можете попробовать:
yum whatprovides "*/pcresyntax"
Из документации RHL ,
yum предоставляет "* / имя_файла"
является полезным способ найти пакеты, содержащие имя_файла.
Также посетите Как мне узнать, какой пакет rpm предоставляет файл, который я ищу?
Для системы на основе Debian / Ubuntu, в которой APT используется в качестве диспетчера пакетов по умолчанию, существует apt-file
(спасибо @Gilles за указание) команда, которая может сделать то, что вы ищете.
DESCRIPTION
apt-file is a command line tool for searching files in packages for the APT package management system.
search Search in which package a file is included. A list of all packages containing the pattern pattern is returned.
Итак, используйте поиск apt-файлов
, чтобы найти пакет, который включает файл, который вы ищете.
Другими словами, справочная страница предоставляется из файлов (обычно из / usr / share / man) и возможной копии . Как узнать, к какому (не установленному) пакету принадлежит файл? !
Это происходит потому, что ([az]) ([AZ])
не соответствует ./ 250 - ErosPhiliaAgape.mp3
. Фактически, ([a-z]) ([A-Z])
может соответствовать только 2 символам - -regex
- это привязанное соответствие по всему пути. Если вы хотите использовать -regex
для поиска файла, имя которого содержит регулярное выражение, вы можете написать его так (синтаксис BSD / macOS find
):
find -E . -regex '.*/[^/]*([a-z])([A-Z])[^/]*'
Эквивалент поиска GNU будет выглядеть примерно так:
find . -regextype posix-extended -regex '.*/[^/]*([a-z])([A-Z])[^/]*'
Find -regex
соответствует всему пути, а не только имени файла. Это означает, что для поиска / path / to / foo
вам понадобится -regex
'. * Foo' , а не только
foo`. Вам нужно что-то вроде:
find . -E -regex ".*[a-z][A-Z].*"
Было бы гораздо проще использовать глобусы и более простое -имя
, как предложено SYN, однако вместо регулярных выражений.