C# 소스 파일에 file 명령을 사용했는데 Linux는 그것이 C++ 파일이라고 생각합니다. 그 이유는 무엇입니까?
답변1
file
이 명령 에 대한 매뉴얼 페이지를 확인하십시오 .
$ 사람 파일
...
파일은 각 매개변수를 테스트하여 분류를 시도합니다. 세 가지 테스트 세트가 있으며 다음 순서로 실행됩니다.파일 시스템 테스트,마술 테스트, 그리고언어 테스트. 첫 번째 테스트에 성공하면 해당 파일 형식이 인쇄됩니다.
이번이 세 번째 테스트입니다(언어 테스트)는 file
이 파일을 C++ 파일로 분류하는 작업을 수행합니다.
파일이 텍스트 유형 파일에 사용된 문자 집합을 결정하면 파일이 어떤 언어로 작성되었는지 확인하려고 시도합니다. 언어 테스트는 파일의 처음 몇 블록 내 어디에나 나타날 수 있는 특정 문자열을 찾습니다( #include 참조). 예를 들어, struct 키워드가 C 프로그램을 나타내는 것처럼 .br 키워드는 파일이 troff(1) 입력 파일일 가능성이 가장 높다는 것을 나타냅니다. 이 테스트는 처음 두 그룹보다 신뢰성이 떨어지므로 마지막에 시행됩니다. 언어 테스트 루틴은 일부 기타 항목(예: tar(1) 아카이브)도 테스트합니다.
C# 파일은 C++ 파일과 가장 잘 일치하므로 file
"추측" .cs 파일은 C++ 파일입니다.
예
$ more blah.cs
// A Hello World! program in C#.
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
조사하다 file
:
$ file blah.cs
blah.cs: ASCII C++ program text