Sunday, October 15, 2006
리눅스/Cygwin] file 명령의 용도/기능/사용법, Linux file Command
리눅스에는 file 이라는 명령어가 있는데, 이것은 파일의 종류를 자동으로 판단하여 출력하는 명령입니다.
리눅스/유닉스의 파일명에는 대체로 확장자가 없기에, 파일명만 보고서는 파일의 종류를 알기 힘듭니다. 그렇다고 해서 일일이 에디터로 열어보거나, cat 명령으로 화면에 출력해 보기도 번거롭습니다. 그리고 이진파일(Binary File)의 경우에는 에디터로도 잘 보이지 않습니다.
이때
라는 명령어를 치면, 현재 디렉토리의 모든 파일의 종류가 상세히 나타납니다. file 명령이 실제 파일들을 직접 열어보고 일종의 인공지능(?)으로서 종류를 분석하는 것입니다.
MS윈도우에서도 Cygwin(시그윈)을 설치하면 file 명령을 사용할 수 있습니다.
이것은 Cygwin(시그윈)에서 file 명령을 준 것입니다:
단순히 파일 종류만 나오는 것이 아니라, 파일의 속살(?)까지도 분석해 주고 있습니다. 다만 java 소스를 C++ 소스로 오인하는 버그가 있군요. 인공지능이 맛이 간 모양입니다^^
텍스트 파일인 경우에는, 행갈이 방식이 CRLF 등으로 표시됩니다. CRLF 는 도스/윈도우의 행갈이입니다.
.zip 의 경우, PKZIP 2.0 이상의 버전으로 풀 수 있다고 나오고
.gif 는 해상도까지 나옵니다.
0바이트 파일은 "empty(비어 있음)"라고 나옵니다.
아무튼 file 명령만 있으면, 그 파일이 무슨 종류의 파일인지 몰라서 답답해 할 필요가 없습니다.
만약 현재 디렉토리(폴더)의 foo 라는 파일의, 종류를 file 명령으로 알아내어, 그 결과를 out.txt 라는 파일로 저장하려면
이렇게 하면 됩니다.
리눅스/유닉스의 파일명에는 대체로 확장자가 없기에, 파일명만 보고서는 파일의 종류를 알기 힘듭니다. 그렇다고 해서 일일이 에디터로 열어보거나, cat 명령으로 화면에 출력해 보기도 번거롭습니다. 그리고 이진파일(Binary File)의 경우에는 에디터로도 잘 보이지 않습니다.
이때
file *
라는 명령어를 치면, 현재 디렉토리의 모든 파일의 종류가 상세히 나타납니다. file 명령이 실제 파일들을 직접 열어보고 일종의 인공지능(?)으로서 종류를 분석하는 것입니다.
MS윈도우에서도 Cygwin(시그윈)을 설치하면 file 명령을 사용할 수 있습니다.
이것은 Cygwin(시그윈)에서 file 명령을 준 것입니다:
$ file *
0.cpp: ASCII C program text, with CRLF line terminators
0.exe: PE executable for MS Windows (console) Intel 80386 32-bit
0.htm: empty
0.obj: 80386 COFF executable not stripped - version 25970
0.pl: perl script text executable
0.txt: ISO-8859 text, with CRLF line terminators
1.pl: perl script text executable
BATCH.zip: Zip archive data, at least v2.0 to extract
Fact.java: ASCII C++ program text, with CRLF line terminators
Foo.class: compiled Java class data, version 49.0
Foo.java: ASCII C++ program text, with CRLF line terminators
K1.pl: perl script text executable
Screen.gif: GIF image data, version 89a, 1024 x 768
cp.pl: perl script text executable
ddd Foo.java: ISO-8859 C++ program text, with CRLF line terminators
dump_array.cpp: ISO-8859 C program text, with CRLF line terminators
dump_array.obj: 80386 COFF executable not stripped - version 25970
f.cpp: ASCII C++ program text, with CRLF line terminators
strdump_to_hex.obj: 80386 COFF executable not stripped - version 25970
strdump_to_word.cpp: Non-ISO extended-ASCII C program text, with CRLF line terminators
strdump_to_word.obj: 80386 COFF executable not stripped - version 25970
test.jpg: JPEG image data, JFIF standard 1.02
0.cpp: ASCII C program text, with CRLF line terminators
0.exe: PE executable for MS Windows (console) Intel 80386 32-bit
0.htm: empty
0.obj: 80386 COFF executable not stripped - version 25970
0.pl: perl script text executable
0.txt: ISO-8859 text, with CRLF line terminators
1.pl: perl script text executable
BATCH.zip: Zip archive data, at least v2.0 to extract
Fact.java: ASCII C++ program text, with CRLF line terminators
Foo.class: compiled Java class data, version 49.0
Foo.java: ASCII C++ program text, with CRLF line terminators
K1.pl: perl script text executable
Screen.gif: GIF image data, version 89a, 1024 x 768
cp.pl: perl script text executable
ddd Foo.java: ISO-8859 C++ program text, with CRLF line terminators
dump_array.cpp: ISO-8859 C program text, with CRLF line terminators
dump_array.obj: 80386 COFF executable not stripped - version 25970
f.cpp: ASCII C++ program text, with CRLF line terminators
strdump_to_hex.obj: 80386 COFF executable not stripped - version 25970
strdump_to_word.cpp: Non-ISO extended-ASCII C program text, with CRLF line terminators
strdump_to_word.obj: 80386 COFF executable not stripped - version 25970
test.jpg: JPEG image data, JFIF standard 1.02
단순히 파일 종류만 나오는 것이 아니라, 파일의 속살(?)까지도 분석해 주고 있습니다. 다만 java 소스를 C++ 소스로 오인하는 버그가 있군요. 인공지능이 맛이 간 모양입니다^^
텍스트 파일인 경우에는, 행갈이 방식이 CRLF 등으로 표시됩니다. CRLF 는 도스/윈도우의 행갈이입니다.
.zip 의 경우, PKZIP 2.0 이상의 버전으로 풀 수 있다고 나오고
.gif 는 해상도까지 나옵니다.
0바이트 파일은 "empty(비어 있음)"라고 나옵니다.
아무튼 file 명령만 있으면, 그 파일이 무슨 종류의 파일인지 몰라서 답답해 할 필요가 없습니다.
만약 현재 디렉토리(폴더)의 foo 라는 파일의, 종류를 file 명령으로 알아내어, 그 결과를 out.txt 라는 파일로 저장하려면
file foo > out.txt
이렇게 하면 됩니다.
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
<< Home