在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高; 而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
使用实例例一:查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文 ...
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了
命令介绍 -exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名。
使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。
使用实例例一:ls -l命令放在find命令的-exec选项中
12## find命 ...
Linux下find命令在目录结构中搜索文件,并执行指定的操作。Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
命令格式1$ find pathname -options [-print -exec -ok ...]
命令功能 用于在文件树种查找文件,并作出相应的处理
命令参数
参数
描述
pathname
find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
-print
find命令将匹配的文件输出到标准输出
-exec
find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格
-ok
和- ...
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。
命令格式1$ locate [选择参数] [样式]
命令功能 locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
locate指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如* 或 ?等)来指定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为n ...
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
命令格式1$ whereis [-bmsu] [BMS 目录名 -f ] 文件名
命令功能 whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。
命令参数
参数
描述
-b
定位可执行文件 ...
我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:which 查看可执行文件的位置。whereis 查看文件的位置。locate 配合数据库查看文件位置。find 实际搜寻硬盘查询文件名称。 which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
命令格式1$ which 可执行文件名称
命令功能 which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
命令参数
参数
描述
-n
指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p
与-n参数相同,但此处的包括了文件的路径
-w
指定输出时栏位的宽度
-V
显示版本信息
使用实例例一:查找文件、显示命令路径
123## which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!## 所以,不同的 PATH 配置内容所找到的命令当然不一样的!$ w ...
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
命令格式1tail[必要参数][选择参数][文件]
命令功能 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
命令参数
参数
描述
-f
循环读取
-q
不显示处理信息
-v
显示详细的处理信息
-c<数目>
显示的字节数
-n<行数>
显示行数
–pid=PID
与-f合用,表示在进程ID,PID死掉之后结束
-q, –quiet, –silent
从不输出给出文件名的首部
-s, –sleep-interval=S
与-f合用,表示在每次反复的间隔休眠S秒
使用实例例一:显示文件末尾内容
12## 显示文件最后5行内容$ tail -n 5 log2014.log
例二:循环查看文件内容
1$ tail -f test.log
例三: ...
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
命令格式1head [参数]... [文件]...
命令功能 head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
命令参数
参数
描述
-q
隐藏文件名
-v
显示文件名
-c<字节>
显示字节数
-n<行数>
显示的行数
使用实例例一:显示文件的前n行
1$ head -n 5 log2014.log
例二:显示文件前n个字节
1$ head -c 20 log2014.log
例三:文件的除了最后n个字节以外的内容
1$ head -c -32 log2014.log
例四:输出文件除了最后n行的全部内容
1$ head -n -6 log2014.log
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
命令格式1$ less [参数] 文件
命令功能 less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
命令参数
参数
描述
-b
<缓冲区大小> 设置缓冲区的大小
-e
当文件显示结束后,自动离开
-f
强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g
只标志最后搜索的关键词
-i
忽略搜索时的大小写
-m
显示类似more命令的百分比
-N
显示每行的行号
-o <文件名& ...
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
命令格式1$ more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
命令功能 more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
命令参数
参数
描述
+n
从笫n行开始显示
-n
定义屏幕大小为n行
+/pattern
每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c
从顶部清屏,然后显示
-d
提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l
忽略Ctrl+l(换页)字符
- ...
