一天一个shell命令 linux文本系列-file命令用法

linux file 命令简介:

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

更多介绍可以查看这篇文章:http://www.jb51.net/LINUXjishu/388984.html

file 官方解释:Determine type of FILEs. 判定文件的类型。

小知识:在UNIX/Linux系统中,文件类型并不是由扩展名决定的(Windows是的)。

开篇例子:

1. $file file.txt

输出:file.txt: ASCII English text

注:file.txt是我用file –help > file.txt生成的帮助文档

查看—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: ascii, apptype, compress, elf, soft, tar, tokens, troff
 -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)
-h, --no-dereference  don't follow symlinks
 -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

解读:

1. -z

查看压缩文件内的信息

2. -b, -e, -i, –r

-b 去掉输出行的前缀命名
-e 从测试列表到被执行文件排除测试。有效的测试包括:ascii, apptype, compress, elf, soft, tar,
-i 打印MIME
-R 不转译无法打印的字符为\ooo

3. magic file

以mgc为扩展名的文件,Microsoft office媒体目录文件

实战实例:

1. $file -z file.zip
查看file.zip包中的文件信息

2. $file –i file.txt
out:file.txt: text/plain; charset=us-ascii

打印MIME类型
 
$file file.txt
out:file.txt: ASCII English text

3. magic file

我翻译起来实在蹩脚。。 只能猜测查看$which file 看看,没有收获。最终通过$file得到

Usage: file  [-bchikLlNnprsvz0] [--apple] [--mime-encoding] [--mime-type]
       [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
 file  -C [-m magicfiles]
 file  [--help]

然后尝试file –C 得到magic.mgc文件。。。 不知有何用,惭愧

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       以冒号分割的魔法数字清单作为列表
                           
  -z, --uncompress           查看压缩文件内容
  -b, --brief                不前缀文件名到输出行里
  -c, --checking-printout    打印魔法文件的解析格式,安装前,用-m debug一个新的魔法文件
                             
  -e, --exclude TEST         排除测试从测试列表到执行文件。有效的测试:ascii, apptype, compress, elf, soft, tar, tokens, troff
  -f, --files-from FILE      从已查的文档中读取文件名
  -F, --separator STRING     用String作为分隔器 代替 “:”
  -i, --mime                 输出MIME类型的字符串 (--mime-type and
                               --mime-encoding)
         
      --apple                输出苹果类型 CREATOR/TYPE
      --mime-type            打印MIME类型
      --mime-encoding        打印 MIME 编码
  -k, --keep-going           不停留在第一个匹配
  -l, --list                 列出magic深度
  -L, --dereference          跟随符号链接(缺省)
  -h, --no-dereference       不跟随符号链接
  -n, --no-buffer            不缓冲输出
  -N, --no-pad               不打印输出
  -0, --print0               NUL终止文件
  -p, --preserve-date        保持文件上的原访问时间
  -r, --raw                  不转移不可打印的字符到\ooo
  -s, --special-files        把特殊(块/字符 设备)文件作为普通文件对待
  -C, --compile              编译用-m指定的文件
  -d, --debug                打印调试信息

Report bugs to http://bugs.gw.com/

时间: 2016-06-02

一天一个shell命令 linux文本内容操作系列-grep命令详解

从这篇开始,是文本内容操作,区别于文本操作. Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. shell,perl,python,一直都是文本操作的专家语言,而我们今后学习的的将是shell的噱头--文本操作.下面提到最常见的一个: grep 这算是文本内容的一个重量级选手,能根据某些规格在上千行的文本文件中查找

一天一个shell命令 linux文本内容操作系列-sed命令详解

说明: sed是stream editor(流编辑器)的缩写.它能够完美匹配正则表达式.sed和awk是文件编辑最重要的两个命令了.尤其涉及到了很多正则表达式的问题,笔者不敢也有点犯怵,试着写写. 实例: 1.替换文件中的字符串 $sed -i 's/text/replace/g' file #如果不加g结尾,则替换每一行的第一个 #如果只是打印,去掉-i 2.忽略前N处匹配,从N+1出开始替换 $sed -i 's/text/replace/2g' file #在g前面加入数字N 3.移除空白

一天一个shell命令 linux文本操作系列-diff命令详解

这又是一个文件比较命令,熟练掌握会节省你很多工作.还记得comm命令吗?diff比他更加复杂,好用,不仅能比较文件,还能比较目录. 当一个文件有多个版本时候,或者更多复杂的文件,目录比较时,你会期望有一个比comm更有用的命令,diff正是为此而生. 全称:different file 实例: 文件1: v1.txt 复制代码 代码如下: hello   world v1_echo   v1_diff   v1_comm  shell is easy! 文件2: v2.txt 复制代码 代码如下

一天一个shell命令 linux文本内容操作系列-cut命令详解

说明: cut 按列切分文件,你可以指定分隔每列的定界符.在cut的术语中,每列都是一个字段,就是有时候说第一列,可能表述称第一个字段. 实战: 假设有文件data.txt,格式如下 NO    Name    Mark    Percent  1    Sarath    45    90  2    Alex    49    98  3    Anu    45    90 分隔符(定界符)为Tab 制表符 如果我要取得第二列,所有人的名称,有什么好的办法吗?此时cut该大显身手了. 1.

一天一个shell命令 linux文本内容操作系列-awk命令详解

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理. awk有3个不同版本: awk.nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本. awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK

一天一个shell命令 linux文本操作系列-tac,rev命令详解

说明: tac和rev没有必然联系,唯一相同的是,他们是"反派".tac其实是cat的反写,cat正常输出,那tac就倒着输出,不过从行的最后一行输出,那rev呢?rev是每行的最后一个字母到第一个字母倒序输出. 简单实例 tac命令 文件过滤分割与合并 tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示. 语法 tac(选项)(参数) 选项 -a或--append:将内容追加到文件的末尾: -i或--ignore-interrupts:忽略中断信号. 参数 文

一天一个shell命令 linux文本操作系列-head,tail命令详解

head命令中文介绍: 用法:head [选项]... [文件]... 将每个指定文件的头10 行显示到标准输出. 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头. 如果不指定文件,或者文件为"-",则从标准输入读取数据. 长选项必须使用的参数对于短选项时也是必需使用的. -c, --bytes=[-]K 显示每个文件的前K 字节内容: 如果附加"-"参数,则除了每个文件的最后K字节数据外 显示剩余全部内容 -n, --lines=[-]K 显示每个文

一天一个shell命令 linux文本操作系列-touch命令用法

之前我们学过dd创建测试文件,如果不需要考虑文件大小,创建一个空白文件的话,不妨试试 touch: 将每个文件的访问时间和修改时间改为当前时间. 不存在的文件将会被创建为空文件,除非使用-c 或-h 选项. 入门例子: 1. 如果想生成100个空文件 for name in {1..100}.txt do touch $name done 2. 改进一下 touch test{1..20}.c 查看 --help 用法:touch [选项]... 文件... 将每个文件的访问时间和修改时间改为当

一天一个shell命令 linux文本操作系列-tree命令详解

tree命令是以图形化的树结构打印文件和目录的主角.通常linux发行版本中并没有包括这个命令.你需要用包管理器自行安装. 实例: 1. tree 打印当前目录下所有文件 2. tree –p ${dir} 打印dir目录下所有文件,以及他们的权限 3. tree –h ${dir} 打印dir目录下所有文件,以及适读的大小 4. tree path –P "*.sh" 打印所有.sh结尾的文件 5. tree path –H http://localhost –o out.html