На этот вопрос уже есть ответ здесь:
Я отвечаю на вопрос с предложением используйте переименовать
, и я понимаю, что не знаю, из какого пакета он исходит (как часть ответа, я представляю, что говорю что-то вроде «если у вас нет переименовать
, это установлен как часть [package] ").
man rename
говорит мне СМОТРИ ТАКЖЕ: mv (1), perl (1)
- поэтому я сначала подумал, что он был установлен с perl.
Связанный ответ , как узнать, что было установлено как часть пакета , помогает мне понять, что пакет perl включает prename
, но не переименовать
- и оказалось, что мой / usr / bin / rename
указывает на / etc / alternatives / rename
, что указывает на / usr / bin / prename
. все еще сбивает с толку. Указывает ли / etc / alternatives / rename
на что-то еще до того, как я установил perl? Есть ли общий способ узнать, из какого пакета что-то взято?
Начиная с 2018 года
apt search filename
работает для последних Ubuntu и большинства дистрибутивов на основе Debian.
Обновление от мая 2018 года: По-видимому, больше не работает с Ubuntu 18.04.
Вы можете попробовать apt-file
(это не является частью установки по умолчанию).
0) Обновить базу данных apt-файлов
sudo apt-file update
1) Найти двоичный файл
$ which rename
/usr/bin/rename
2) Найти пакет
$ apt-file search /usr/bin/rename
util-linux: /usr/bin/rename.ul
[ 1110] И вуаля - переименование является частью util-linux
Оказывается, dpkg-query
хорошо для получения информации об установленных пакетах, и с опцией -S [pattern] будет искать пакеты с файлами, соответствующими [pattern].
dpkg-query -S [filename-search-pattern]
установить apt-файл
$ sudo apt-get install apt-file
обновить apt-файл
$ sudo apt-file update
найти пакет, к которому относится файл 119]
$ whereis rename
rename: /usr/bin/rename.ul /usr/bin/rename /usr/bin/X11/rename.ul /usr/bin/X11/rename /usr/share/man/man1/rename.1.gz /usr/share/man/man2/rename.2.gz
поиск пакета
$ apt-file search /usr/bin/rename
ladr4-apps: /usr/bin/renamer
util-linux: /usr/bin/rename.ul
имя пакета: util-linux