강좌 & 팁
리눅스 명령어 file 을 알아 보겠습니다.
기능은 파일내용, 종류를 조사합니다.
사용법은 아래와 같습니다.
---------------------------------------------------------------------------
Usage: file [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
[-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
----------------------------------------------------------------------------
옵션은 아래와 같습니다.
----------------------------------------------------------------------------
Usage: file [OPTION...] [FILE...]
Determine type of FILEs.
--help display this help and exit
-v, --version output version information and exit
-m, --magic-file LIST use LIST as a colon-separated list of magic
number files
-z, --uncompress try to look inside compressed files
-b, --brief do not prepend filenames to output lines
-c, --checking-printout print the parsed form of the magic file, use in
conjunction with -m to debug a new magic file
before installing it
-e, --exclude TEST exclude TEST from the list of test to be
performed for file. Valid tests are:
apptype, ascii, cdf, compress, elf, encoding,
soft, tar, text, tokens
-f, --files-from FILE read the filenames to be examined from FILE
-F, --separator STRING use string as separator instead of `:'
-i, --mime output MIME type strings (--mime-type and
--mime-encoding)
--apple output the Apple CREATOR/TYPE
--mime-type output the MIME type
--mime-encoding output the MIME encoding
-k, --keep-going don't stop at the first match
-l, --list list magic strength
-L, --dereference follow symlinks (default if POSIXLY_CORRECT is set)
-h, --no-dereference don't follow symlinks (default if POSIXLY_CORRECT is not set)
-n, --no-buffer do not buffer output
-N, --no-pad do not pad output
-0, --print0 terminate filenames with ASCII NUL
-p, --preserve-date preserve access times on files
-r, --raw don't translate unprintable chars to \ooo
-s, --special-files treat special (block/char devices) files as
ordinary ones
-C, --compile compile file specified by -m
-d, --debug print debugging messages
Report bugs to http://bugs.gw.com/
----------------------------------------------------------------------------
파일 명령은 다음 순서에 다라 파일 종류를 판별합니다.
디바이스, 디렉토리, 심볼릭 링크
압축 파일 첵크
tar 파일 체크
magic 데이터베이스 파일에 따른 체크
ASCII, Unicode 등 텍스트 파일 종류 체크
위에 해당되지 안으면 바이너리로 판단 합니다.
만약 새로운 파일 종류를 추가 하고 싶다면, magic 데이터베이스에 파일 엔트리를 추가하면 됩니다.
예제로 u-boot 를 보겠습니다.
$ file u-boot
u-boot: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
끝 -