• file命令


    该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的

    下表列出了部分常用的参数。

    参数

    长参数

    描叙

    -b

     

    列出文件辨识结果时,不显示文件名称。

    -c

     

    详细显示指令执行过程,便于排错或分析程序执行的情形

    -f

     

    列出文件中文件名的文件类型

    -F

     

    使用指定分隔符号替换输出文件名后的默认的“:”分隔符。

    -i

     

    输出mime类型的字符串

    -L

     

    查看对应软链接对应文件的文件类型

    -z

     

    尝试去解读压缩文件的内容

     

    --help

    显示命令在线帮助

     

    --version

    显示命令版本信息

    使用示例:

    1:查看file命令的帮助信息

    [root@DB-Server ~]# file --help
    Usage: file [OPTION]... [FILE]...
    Determine file type of FILEs.
     
      -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
      -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
      -k, --keep-going           don't stop at the first match
      -L, --dereference          causes symlinks to be followed
      -n, --no-buffer            do not buffer output
      -N, --no-pad               do not pad output
      -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
          --help                 display this help and exit
          --version              output version information and exit

    当然你也可以使用 man file 获取更加详细的帮助文档信息。

    2:查看文件类型

    例如,如下所示,Temp.txt 文件类型为text,编码为UTF-8 Unicode

    [root@DB-Server ~]# file Temp.txt 
     
    Temp.txt: UTF-8 Unicode text, with very long lines, with CRLF line terminators
     

    3:不输出文件名称,只显示文件格式以及编码

    通过下面两个命令对时,就可以清晰的了解参数-b的作用。

    [root@DB-Server ~]# file Temp.txt 
    Temp.txt: UTF-8 Unicode text, with very long lines, with CRLF line terminators
    [root@DB-Server ~]# file -b Temp.txt
    UTF-8 Unicode text, with very long lines, with CRLF line terminators

    clip_image001

    4: 输出mime类型的字符串

    [root@DB-Server ~]# file -i Temp.txt 
    Temp.txt: text/plain; charset=utf-8

    5: 查看文件中的文件名的文件类型

    这个参数非常适合shell脚本去查找、判别某种文件类型的数据。

    [root@DB-Server ~]# cat >test
    /root/install.log 
    it is only one test file
     
    [2]+  Stopped                 cat > test
    [root@DB-Server ~]# file -f  test
    /root/install.log:        ASCII text
    it is only one test file: ERROR: cannot open `it is only one test file' (No such file or directory)
    [root@DB-Server ~]# 
    [root@DB-Server ~]# 

    clip_image002

    5: 使用指定分隔符号替换输出文件名后的默认的“:”分隔符。

    感觉这个参数很鸡肋!我搞明白这个参数的作用时,很是纳闷。

    clip_image003

    6:尝试去解读压缩文件的内容

    [root@DB-Server ~]# file -z Temp.txt.gz 
    Temp.txt.gz: UTF-8 Unicode text, with very long lines, with CRLF line terminators (gzip compressed data, was "Temp.txt", from Unix, last modified: Tue Jun 24 00:34:15 2014)
    [root@DB-Server ~]# 

    7: 查看软链接对应文件的文件类型

    如下所示,创建一个软链接sfile,然后分别用file 和带参数的file -L查看

     
    [root@DB-Server ~]# ln -s Temp.txt.gz sfile
    [root@DB-Server ~]# file sfile 
    sfile: symbolic link to `Temp.txt.gz'
    [root@DB-Server ~]# file -L sfile 
    sfile: gzip compressed data, was "Temp.txt", from Unix, last modified: Tue Jun 24 00:34:15 2014
    [root@DB-Server ~]# 




    例:
    1、查看天空之城
    linux@server:~/Ubuntu One/music$ file 天空之城
    天空之城: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, JntStereo
    可以看出是一个mp3音乐
     
    2、根据一个文件名称,查看列表里文件的类型
    $ cat filename #查看文件里有两个文件名列表
    update.iso
    examples.desktop
    $ file -f filename #显示filename文件中的文件类型
    update.iso:       # ISO 9660 CD-ROM filesystem data 'CDROM                          '
    examples.desktop: ASCII text
     
    3、显示压缩文件的数据类型
    有一些压缩文件以一定的文件扩展名,如.gz bz2等发布,很容易选择压缩工作,但没有给定扩展名的,要用file查一下,再选择压缩工具。
     
    $ file -z filename.zip
    filename.zip: data (Zip archive data, at least v2.0 to extract)
     
     
    4、查看符号文件的类型和符号链接文件所指向实际文件的类型
     
    linux@server:/$ file initrd.img 
    initrd.img: symbolic link to `boot/initrd.img-2.6.35-23-generic-pae'
    linux@server:/$ file -L initrd.img 
    initrd.img: gzip compressed data, from Unix, last modified: Thu Dec  2 21:04:37 2010
     
     
     
     






  • 相关阅读:
    linux定时任务之crontab
    Examples of GoF Design Patterns--摘录
    weblogic升级之ddconverter
    Memcached分布式算法详解--转
    java实现迷宫算法--转
    kmp java implement--转
    2013年小结及2014年展望
    深入redis内部--字典实现
    项目管理学习笔记之二.工作分解
    android在当前app该文件下创建一个文件夹
  • 原文地址:https://www.cnblogs.com/timssd/p/4576133.html
Copyright © 2020-2023  润新知