text/plain 및 text/x-java에 대해 두 개의 다른 js 파일을 얻는 이유는 무엇입니까?

text/plain 및 text/x-java에 대해 두 개의 다른 js 파일을 얻는 이유는 무엇입니까?

나는 /usr/bin/file -i file_path내 파일에 대한 정보를 얻는 데 사용합니다.

여러 js 파일이 포함된 간단한 웹 사이트 프로젝트가 있습니다.

그 중 일부를 사용하면 /usr/bin/file -i file_name.js다음과 같은 결과가 나타납니다.

file_name.js: 텍스트/일반 텍스트 문자 집합=utf-8

하지만 다른 파일의 경우 다음과 같은 결과를 얻습니다.

파일 이름.js: text/x-java; 문자 집합=utf-8

내가 사용하는 품질 관리 유틸리티는 파일 형식에 따라 다르기 때문에 이러한 불일치로 인해 오류가 발생합니다.

왜 그럴까요? 무엇을 확인하거나 제외해야 합니까? 어떻게?

답변1

내 시스템에서는 file이름이 다음으로 끝나는 파일을 추측합니다 .js(실제로 그 중 몇 개가 자바스크립트 파일인지는 모르겠습니다).

$ 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-javaimport;

여러 언어로 작동하는 코드를 작성하는 것은 예술이라는 것을 기억하세요.다국어 코딩. 전체가 있습니다codegolf.stackexchange.com의 Q&A 카테고리이는 일반적으로 파일 내용에서 프로그래밍 언어를 확실하게 식별하는 것이 항상 가능하지는 않음을 보여줍니다. 당신이 할 수 있는 일은 다음과 같이 말하는 것뿐입니다. 아마도 javascript나 C++ 등일 것 같습니다.

관련 정보