Linux当中关于文件的显示命令

Posted 心笔轩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux当中关于文件的显示命令相关的知识,希望对你有一定的参考价值。

Linux中对于文件展示的操作较多,用的也比较频繁,总结如下:

 

1. cat

cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容

cat [-AbeEnstTuv] [--help] [--version] filename

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 --show-ends : 在每行结束处显示 $。

-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

-e : 等价于 -vE。

-A, --show-all:等价于 -vET。

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

 

举例:

cat –n file  (打印文件,并添加行号)

cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

2. more

命令类似 cat ,会以一页一页的形式显示. 按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示, 按q退出显示。

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

 

-num 一次显示的行数

+num 从第 num 行开始显示

-d 提示使用者,在画面下方显示 [Press space to continue, ‘q‘ to quit.] ,如果使用者按错键,则会显示 [Press ‘h‘ for instructions.] 而不是 ‘哔‘ 声

-l 取消遇见特殊字元 ^L时会暂停的功能

-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料

-s 当遇到有连续两行以上的空白行,就代换为一行的空白行

-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)

+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示

 

举例:

more +20 testfile  (从第 20 行开始显示 testfile 之文档内容)

 3. less

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

less [参数] 文件

 

-e 当文件显示结束后,自动离开

-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件

-g 只标志最后搜索的关键词

-i 忽略搜索时的大小写

-m 显示类似more命令的百分比

-N 显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-s 显示连续空行为一行

-S 行过长时间将超出部分舍弃

/字符串:向下搜索"字符串"的功能

?字符串:向上搜索"字符串"的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

b 向后翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一页

回车键 滚动一行

[pagedown]: 向下翻动一页

[pageup]: 向上翻动一页

 

举例:

ps -ef |less  (ps查看进程信息并通过less分页显示)

4. head tail

这2个命令比较类似。head是按行号正序输出文件,tail是按行号倒叙输出文件。

head [参数]... [FILE]

tail [参数]... [FILE]

 

-c<数目> 显示的字节数

-n<行数> 显示行数(默认10行)

--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.

 

举例:

head -5 file

tail -5 file

5. find

find命令用来在指定目录下查找文件

find   path   -option   [ -print ]   [ -exec   -ok   command ]   {} ;
-path:  find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为‘command‘ { } ;,注意{ }和;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

 

-option可对应下列参数:

-name   filename             #查找名为filename的文件

-perm                        #按执行权限来查找

-user    username             #按文件属主来查找

-group groupname            #按组来查找

-mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-atime    -n +n               #按文件访问时间来查GIN: 0px">

-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer   f1 !f2              找文件,-n指n天以内,+n指n天以前

-ctime    -n +n               #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                      #查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer   f1 !f2               #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype                     #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype                      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount                       #查文件时不跨越文件系统mount点

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                %;      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount                       #查文件时不跨越文件系统mount点

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                        #对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                       #忽略某个目录

 

举例:

find   -name april*  (在当前目录下查找以april开始的文件)

find   /mnt   -name tom.txt   -ftype vfat   (在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件)

find . -type f -exec ls -l {} ;  (查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出)

6. 文件判断

下列参数是在if语句中,对文件的相关判断操作,如果下面的条件成立将会返回真.(仅列出一些常用的操作)

-e
    文件存在

-f
    表示这个文件是一个 一般 文件(并不是目录或者设备文件)

-s
    文件大小不为零

-d
    表示这是一个目录

-b
    表示这是一个块设备(软盘, 光驱, 等等.)

-S
    表示这是一个socket

-r
    文件是否具有可读权限( 指的是正在运行这个测试命令的用户是否具有读权限 )

-w
    文件是否具有可写权限(指的是正在运行这个测试命令的用户是否具有写权限)

-x
    文件是否具有可执行权限(指的是正在运行这个测试命令的用户是否具有可执行权限)

-O
    判断你是否是文件的拥有者

f1 -nt f2
    文件 f1 比文件 f2 新

f1 -ot f2
    文件 f1 比文件 f2 旧

f1 -ef f2
    文件 f1 和文件 f2 是相同文件的硬链接

!
    "非" -- 反转上边所有测试的结果(如果没给出条件, 那么返回真).

 

举例:

if [ ! -f "$myFile" ]; then

 touch "$myFile"

fi # 这里的-f参数判断$myFile是否存在

 7. 文件类型判断

file命令用于辨识文件类型。

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

 

-b  列出辨识结果时,不显示文件名称。
-c  详细显示指令执行过程,便于排错或分析程序执行的情形。
-f   <名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L  直接显示符号连接所指向的文件的类别。
-m   <魔法数字文件>  指定魔法数字文件。
-v  显示版本信息。
-z  尝试去解读压缩文件的内容。
  [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

 举例:

[[email protected] ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text

 

以上是关于Linux当中关于文件的显示命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用命令!如何查看文件内容?

新手Linux命令-2

关于LINUX下WGET命令的问题.

Linux 文件系统初步

2017-7-19-每日博客-关于Linux下的CentOS中文件夹基本操作命令.doc

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段