![이름에 특정 절이 포함된 모든 파일 찾기](https://rvso.com/image/1127609/%EC%9D%B4%EB%A6%84%EC%97%90%20%ED%8A%B9%EC%A0%95%20%EC%A0%88%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%20%EC%B0%BE%EA%B8%B0.png)
이것은 일반적인 질문이지만 내 경우는 gcc arm 컴파일러를 설치했지만(설치했다고 믿습니다!) 내 시스템 어디에서도 찾을 수 없다는 것입니다. 아래 명령을 시도했지만 거의 모든 것을 반환합니다.
$sudo find . -print | grep -i '.*[arm]'
내가 찾고 있는 파일의 이름에 다음과 같은 조항이 있을 수 있다고 생각합니다.
gcc, arm, eabi, 4.8, ....
가장 좋은 검색어는 무엇입니까?
답변1
ping 출력 대신 -name
또는 -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 ...
: 정규식을 검색합니다. 전체 부분이 아닌 기본 이름만 원하므로/
하나 이상의 슬래시 뒤에 있는 슬래시( )를 제외해야 합니다 .