이름에 특정 절이 포함된 모든 파일 찾기

이름에 특정 절이 포함된 모든 파일 찾기

이것은 일반적인 질문이지만 내 경우는 gcc arm 컴파일러를 설치했지만(설치했다고 믿습니다!) 내 시스템 어디에서도 찾을 수 없다는 것입니다. 아래 명령을 시도했지만 거의 모든 것을 반환합니다.

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

내가 찾고 있는 파일의 이름에 다음과 같은 조항이 있을 수 있다고 생각합니다.

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

가장 좋은 검색어는 무엇입니까?

답변1

ping 출력 대신 -name또는 -iname스위치를 사용할 수 있습니다 . 또한 검색 범위를 파일로 좁힐 수 있으며, 설치된 위치를 모른다면 현재 작업 디렉터리보다 검색하는 것이 좋습니다.findgrepfind/

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 ...: 정규식을 검색합니다. 전체 부분이 아닌 기본 이름만 원하므로 /하나 이상의 슬래시 뒤에 있는 슬래시( )를 제외해야 합니다 .

관련 정보