名前に特定の句を含むすべてのファイルを検索します

名前に特定の句を含むすべてのファイルを検索します

これは一般的な質問ですが、私の場合は、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 ...: 正規表現を検索します。必要なのはベース名のみであり、部分全体ではないため、/少なくとも 1 つのスラッシュの後ろのスラッシュ ( ) を除外する必要があります。

関連情報