Это - общий вопрос, но мой случай - то, что я установил (я полагаю, что он был установлен!) gcc компилятор руки, но я не могу найти его нигде в моей системе. Я попробовал команду ниже, но она возвращает почти что-либо
$sudo find . -print | grep -i '.*[arm]'
Я полагаю файлу, что ищу, может иметь следующие пункты на его имя:
gcc, arm, eabi, 4.8, ....
Каков был бы лучший критерий поиска?
Можно использовать -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*"
, это должно быть в состоянии найти его.
Я установил пакет и работал: 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
То, что find
команда должна работать:
find . -executable -type f -regex '.*\/[^\/]*\(gcc\|arm\|eabi\|4\.8\)[^\/]*'
Объяснение:
-executable
: только файлы соответствий, которые имеют исполняемый набор битов. -type f
: только соответствуйте регулярным файлам. -regex ...
: ищите регулярное выражение. Вы хотите только базовые имена, не целый parths, таким образом, мы должны исключить наклонные черты (/
) позади по крайней мере одной наклонной черты.