だから私はしばしばバイナリ実行可能ファイルを実行する罪を犯しcat
、私の端末は通常奇妙な音を出して気分が悪くなります。バイナリ/実行可能エンコーディングファイルに拡張子を付けるために許可される命名規則はありますか?
実行可能ファイルがあります(そして私が言及したように、go build -o /tmp/api.exe .
出力名を.exeとして指定しましたが、utf8であることを確認する前にファイルを確認する方法があるかどうか疑問に思います。
答え1
実行可能ファイルの標準的な命名方法は、コマンドラインで最終的に無視される拡張子を提供せずに実装する必要があるコマンドの名前を提供することですls
。cat
ファイルを提供する前にファイルに含まれる内容を確認するには、次の手順を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-
有害- 端末への影響ではなく、コマンドスタイルへの影響によるものです。 )