飞奔的炮台 发表于 2021-11-27 10:31:17

Linux系统中file命令的使用详解

这篇文章主要介绍了Linux系统中file命令的使用详解,是Linux入门学习中的基础知识,需要的朋友可以参考下
命令简介:
该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。
执行权限 :All User
指令所在路径:/usr/bin/file

命令语法:

代码如下:



file [ -bchikLnNprsvz ] [ -f namefile ] [ -F separator ] [ -m magicfiles ] file ...命令参数:
下表列出了部分常用的参数。

使用示例:
1:查看file命令的帮助信息
代码如下:

# file --help
Usage: 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                               beforeinstalling 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:不输出文件名称,只显示文件格式以及编码
通过下面两个命令对时,就可以清晰的了解参数-b的作用。


代码如下:



# file Temp.txt Temp.txt: UTF-8 Unicode text, with very long lines, with CRLF line terminators# file -b Temp.txtUTF-8 Unicode text, with very long lines, with CRLF line terminators

3: 输出mime类型的字符串

代码如下:



# file -i Temp.txt Temp.txt: text/plain; charset=utf-8

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

你可以像下面这样使用 file 命令确定文件的类型。下面的截图显示了用 file 命令确定不同文件类型的例子。

代码如下:



tecmint@tecmint ~/Linux-Tricks $ dir

BACKUP master.zip

crossroads-stable.tar.gz num.txt

EDWARD-MAYA-2011-2012-NEW-REMIX.mp3 reggea.xspf

Linux-Security-Optimization-Book.gif tmp-link

tecmint@tecmint ~/Linux-Tricks $ file BACKUP/

BACKUP/: directory

tecmint@tecmint ~/Linux-Tricks $ file master.zip

master.zip: Zip archive data, at least v1.0 to extract

tecmint@tecmint ~/Linux-Tricks $ file crossroads-stable.tar.gz

crossroads-stable.tar.gz: gzip compressed data, from Unix, last modified: Tue Apr 5 15:15:20 2011

tecmint@tecmint ~/Linux-Tricks $ file Linux-Security-Optimization-Book.gif

Linux-Security-Optimization-Book.gif: GIF image data, version 89a, 200 x 259

tecmint@tecmint ~/Linux-Tricks $ file EDWARD-MAYA-2011-2012-NEW-REMIX.mp3

EDWARD-MAYA-2011-2012-NEW-REMIX.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo

tecmint@tecmint ~/Linux-Tricks $ file /dev/sda1

/dev/sda1: block special

tecmint@tecmint ~/Linux-Tricks $ file /dev/tty1

/dev/tty1: character special5:尝试去解读压缩文件的内容


代码如下:



# 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)#

6: 查看软链接对应文件的文件类型
如下所示,创建一个软链接sfile,然后分别用file 和带参数的file -L查看

代码如下:



# ln -s Temp.txt.gz sfile# file sfile sfile: symbolic link to `Temp.txt.gz'# file -L sfile sfile: gzip compressed data, was "Temp.txt", from Unix, last modified: Tue Jun 24 00:34:15 2014#
http://www.zzvips.com/article/10367.html
页: [1]
查看完整版本: Linux系统中file命令的使用详解