# The format is 4-5 columns:
# Column #1: byte number to begin checking from, ">" indicates continuation
# Column #2: type of data to match
# Column #3: contents of data to match
# Column #4: MIME type of result
# Column #5: MIME encoding of result (optional)
man 해보세요
man file 해보시면 설명이 꽤 자세하게 나오네요.
*nix 파일들은 타입 정보를 가지고 있지않습니다.
텍스트인지 바이너리인지 알려면 파일을 읽어보고 콘텐츠로 그 여부를 따져야되는걸로 알고있습니다.
첨부된 파일은 모드를 판단하는건데요, gnu ftp싸이트에 있는건데요, 이런 비슷한 식으로 하시면 될거에요.
함수로도 있을 듯
함수로도 있을 듯 합니다.
아니면,
/usr/share/misc/file/magic.mime
이것이 file 에서 사용하는 정보 입니다.
이런식의 정보가 들어있습니다.
이 형식을 맞추어 작성하시면 될듯 합니다.
emerge money
https://xenosi.de/
seank76님, 송효진 님 답변 감사합니다!!
우선 권한 형식은, 권한에 따라 실제 바이너리인지 아닌지가 구별이 안될꺼 같습니다..ㅠㅠ
그리 사진까지 올려주셔서 그 magic.mime 파일을 봤습니다..
'';; 아직 제 수준에서 너무 어려운거 같습니다.
일단 답변 정말 감사드리고 좀 더 분석해 보려구요.
좋은 하루 되세요!!
어렵게 생각하지
어렵게 생각하지 마세요. 쉬운겁니다.
0 : 파일 처음부터 (0 byte 부터)
beshort : 2byte hex
0xffd8 : 비교데이터
image/jpeg : 위의 조건이 맞으면 요거.
mime.magic 을 파싱해서 사용하는걸 작성하셔도 좋고,
원하시는 파일형식을 골라서 직접 비교하게 작성하셔도 좋겠죠.
저는 간단하게 jpeg, gif, png 만을 구분하도록 작성해서 사용합니다.
emerge money
https://xenosi.de/
부연 설명이요.
죄송해요. 좀 더 자세히 설명드렸어야되는데...
타입을 파악할 파일을 읽으신후 그 내용을 filemode.c에 있는 함수 비슷하게 파싱하시면 된다는 거였거든요.
다시 보니까 답변이 참 부실했네요. *^^*
송효진님이 올리신 테이블등을 참조하시면 파싱하시기 어렵지 않으실거에요.
제가 지금 쓰고 있는 시스템이 Solaris여서 그런지 magic.mime은 없네요. (혹시 썬머신에 magic 파일이 있는지 아시는 분 있나요?)
file 콤멘드의 소스를 구할수 있으면 좋으실텐데...
댓글 달기