리눅스 명령어 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


끝 -