実行可能ファイル(バイナリファイル)の標準命名方法と、ファイルに印刷できない文字が含まれているかどうかを確認するには?

実行可能ファイル(バイナリファイル)の標準命名方法と、ファイルに印刷できない文字が含まれているかどうかを確認するには?

だから私はしばしばバイナリ実行可能ファイルを実行する罪を犯しcat、私の端末は通常奇妙な音を出して気分が悪くなります。バイナリ/実行可能エンコーディングファイルに拡張子を付けるために許可される命名規則はありますか?

実行可能ファイルがあります(そして私が言及したように、go build -o /tmp/api.exe .出力名を.exeとして指定しましたが、utf8であることを確認する前にファイルを確認する方法があるかどうか疑問に思います。

ベストアンサー1

実行可能ファイルの標準的な命名方法は、コマンドラインで最終的に無視される拡張子を提供せずに実装する必要があるコマンドの名前を提供することですlscat

ファイルを提供する前にファイルに含まれる内容を確認するには、次の手順をcat実行fileします。

$ file /bin/ls
/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b6b1291d0cead046ed0fa5734037fa87a579adee, for GNU/Linux 3.2.0, stripped, too many notes (256)

$ file /bin/zgrep
/bin/zgrep: a /usr/bin/sh script, ASCII text executable

これは私の端末に奇妙なことをしないことを伝えますcat /bin/zgrep(エスケープシーケンスも含まず、個別に識別されますfile)。

私はless一般的な使用を好む。バイナリを表示する前に警告し、どのような場合でも端末を台無しにしません。また、cat短いファイルのように動作するように設定することもできます(-Fオプションを参照)。

〜のようにモスビー印刷できない文字を目に見える表現(およびプレフィックス)に置き換えるcatオプションを追加すると、バイナリファイルでこれを安全に実行できることが指摘されています。-v(Rob Pikeはこのオプションが次のように主張したことで知られています。^M-有害- 端末への影響ではなく、コマンドスタイルへの影響によるものです。 )

おすすめ記事