Найдите все файлы, которые содержат данный пункт на их имена

Это - общий вопрос, но мой случай - то, что я установил (я полагаю, что он был установлен!) gcc компилятор руки, но я не могу найти его нигде в моей системе. Я попробовал команду ниже, но она возвращает почти что-либо

$sudo find . -print | grep -i '.*[arm]'

Я полагаю файлу, что ищу, может иметь следующие пункты на его имя:

gcc, arm, eabi, 4.8, ....

Каков был бы лучший критерий поиска?

2
задан 1 July 2015 в 16:29

3 ответа

Можно использовать -name или -iname переключатели find вместо grep ping find вывод; также Вы могли сузить поиск к файлам, и если Вы понятия не имеете о том, где он, возможно, был установлен, необходимо искать в /, а не в том, какой бы ни текущий рабочий каталог:

sudo find / -type f -name "*gcc*" -o -name "*arm*" -o -name "*eabi*" -o -name "*4.8*"
<час>

Согласно Ваш комментарий , Вы установили его с помощью PPA, поэтому если исполняемый файл был добавлен к пути, необходимо быть в состоянии определить его местоположение путем выполнения which arm-none-eabi-gcc; если это не имеет, работайте sudo find / -type f -name "*arm-none-eabi-gcc*", это должно быть в состоянии найти его.

3
ответ дан 2 December 2019 в 01:45

Я установил пакет и работал: dpkg-query -L gcc-arm-none-eabi. Результатом был список файлов, самым соответствующим из которых были много файлов в /usr/bin/ весь запуск с arm-none-eabi. Я думаю, что те - файлы, которые Вы ищете.

    $ls /usr/bin/arm-none-eabi*
/usr/bin/arm-none-eabi-addr2line   /usr/bin/arm-none-eabi-gcov
/usr/bin/arm-none-eabi-ar          /usr/bin/arm-none-eabi-gdb
/usr/bin/arm-none-eabi-as          /usr/bin/arm-none-eabi-gprof
/usr/bin/arm-none-eabi-c++         /usr/bin/arm-none-eabi-ld
/usr/bin/arm-none-eabi-c++filt     /usr/bin/arm-none-eabi-ld.bfd
/usr/bin/arm-none-eabi-cpp         /usr/bin/arm-none-eabi-nm
/usr/bin/arm-none-eabi-elfedit     /usr/bin/arm-none-eabi-objcopy
/usr/bin/arm-none-eabi-g++         /usr/bin/arm-none-eabi-objdump
/usr/bin/arm-none-eabi-gcc         /usr/bin/arm-none-eabi-ranlib
/usr/bin/arm-none-eabi-gcc-4.9.3   /usr/bin/arm-none-eabi-readelf
/usr/bin/arm-none-eabi-gcc-ar      /usr/bin/arm-none-eabi-size
/usr/bin/arm-none-eabi-gcc-nm      /usr/bin/arm-none-eabi-strings
/usr/bin/arm-none-eabi-gcc-ranlib  /usr/bin/arm-none-eabi-strip
2
ответ дан 2 December 2019 в 01:45

То, что find команда должна работать:

find . -executable -type f -regex '.*\/[^\/]*\(gcc\|arm\|eabi\|4\.8\)[^\/]*'

Объяснение:

  • -executable: только файлы соответствий, которые имеют исполняемый набор битов.
  • -type f: только соответствуйте регулярным файлам.
  • -regex ...: ищите регулярное выражение. Вы хотите только базовые имена, не целый parths, таким образом, мы должны исключить наклонные черты (/) позади по крайней мере одной наклонной черты.
1
ответ дан 2 December 2019 в 01:45

Другие вопросы по тегам:

Похожие вопросы: