私は/usr/bin/file -i file_path
私のファイルに関する情報を取得するために使用します。
複数のjsファイルを含む単純なWebサイトプロジェクトがあります。
そのうちのいくつかを使用すると、/usr/bin/file -i file_name.js
次の結果が表示されます。
file_name.js: テキスト/一般テキスト文字セット=utf-8
しかし、他のファイルの場合は、次のような結果が得られます。
ファイル名.js: text/x-java;文字セット=utf-8
私が使用している品質管理ユーティリティはファイルの種類によって異なるため、これらの不整合が原因でエラーが発生します。
なぜですか?何を確認または除外する必要がありますか?どのように?
答え1
私のシステムでは、file
名前が終わるファイルを推測します.js
(実際には、そのうちのいくつがJavaScriptファイルであるかどうかはわかりません)。
$ locate -e0 '*.js' | xargs -r0 file -b --mime-type | sort | uniq -c
60 application/json
18 application/octet-stream
1 application/x-terminfo
1 inode/directory
62 inode/symlink
259 inode/x-empty
1 regular file, no read permission
2 text/csv
220 text/html
13342 text/plain
30 text/x-Algol68
6 text/x-asm
126 text/x-c
32 text/x-c++
41 text/x-java
15 text/x-perl
82 text/x-tex
file
経験的な方法を使用してファイルの内容を読み、ファイルの種類を推測してください。 JavaScript、C、C++、Javaソースファイルなどを明確に区別できないテキストファイルの場合、推測が乱舞することが多いです。
She-bangがあるfile
と報告された唯一のファイルであるAFAICTは、Nodejsインタプリタを参照します。で始まり、終わると報告された行です。application/javascript
#!
text/x-java
import
;
複数の言語で動作するコードを書くのは芸術であることを忘れないでください。多言語コーディング。全体がありますcodegolf.stackexchange.comのQ&Aカテゴリこれは、通常、ファイルの内容からプログラミング言語を確実に識別することが必ずしも可能ではないことを示しています。あなたができることは、次のように言うだけです。おそらくjavascriptやC ++などのようです。