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