zoukankan      html  css  js  c++  java
  • Linux命令学习总结: file命令

    命令简介:

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

    执行权限 :All User

    指令所在路径:/usr/bin/file

    命令语法:

    file [ -bchikLnNprsvz ] [ -f namefile ] [ -F separator ] [ -m magicfiles ] file ...

    命令参数:

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

    参数

    长参数

    描叙

    -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 ~]# 
  • 相关阅读:
    Intellij IDEA 关闭阿里编码规约“请不要使用行尾注释”提醒
    VS 进行了无法编译的编辑
    IntelliJ IDEA lombok log 报红
    SQL Server 事务执行SQL
    Linux 检查应用不在现就重启
    Java入门5.2---String类、StringBuffer类、StringBuilder类、System类、Data类、SimpleDataFormat类、Calendar类、Math类、BigInteger类与BigDecimal类
    为什么要进行补偿
    解决flex布局中 space-between方法的排版问题
    桑基图的使用场景
    清蒸罗非鱼的做法和步骤
  • 原文地址:https://www.cnblogs.com/kerrycode/p/3806618.html
Copyright © 2011-2022 走看看