仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 633|回复: 9
打印 上一主题 下一主题

[其他Linux] Linux编程之天天一个linux命令(21):find命令之xargs仓酷云

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:24:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
在利用find命令的-exec选项处置婚配到的文件时,find命令将一切婚配到的文件一同传送给exec实行。但有些体系对可以传送给exec的命令长度无限制,如许在find命令运转几分钟以后,就会呈现溢堕落误。毛病信息一般是“参数列太长”或“参数列溢出”。这就是xargs命令的用途地点,出格是与find命令一同利用。
find命令把婚配到的文件传送给xargs命令,而xargs命令每次只猎取一部分文件而不是全体,不像-exec选项那样。如许它能够先处置开始猎取的一部分文件,然后是下一批,并云云持续下往。
在有些体系中,利用-exec选项会为处置每个婚配到的文件而倡议一个响应的历程,并不是将婚配到的文件全体作为参数一次实行;如许在有些情形下就会呈现历程过量,体系功能下落的成绩,因此效力不高;而利用xargs命令则只要一个历程。别的,在利用xargs命令时,事实是一次猎取一切的参数,仍是分批获得参数,和每次猎取参数的数量城市依据该命令的选项及体系内核中响应的可调参数来断定。
利用实例:
实例1:查找体系中的每个一般文件,然后利用xargs命令来测试它们分离属于哪类文件
命令:
find.-typef-print|xargsfile
输入:
[root@localhosttest]#ll
总计312
-rw-r--r--1rootroot30210811-0306:19log2012.log
-rw-r--r--1rootroot011-1222:25log2013.log
-rw-r--r--1rootroot011-1222:25log2014.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxrwx2rootroot409611-1219:32test3
drwxrwxrwx2rootroot409611-1219:32test4
[root@localhosttest]#find.-typef-print|xargsfile
./log2014.log:empty
./log2013.log:empty
./log2012.log:ASCIItext
[root@localhosttest]#
实例2:在全部体系中查找内存信息转储文件(coredump),然后把了局保留到/tmp/core.log文件中
命令:
find/-name"core"-print|xargsecho"">/tmp/core.log
输入:
[root@localhosttest]#find/-name"core"-print|xargsecho"">/tmp/core.log
[root@localhosttest]#cd/tmp
[root@localhosttmp]#ll
总计16
-rw-r--r--1rootroot152411-1222:29core.log
drwx------2rootroot409611-1222:24ssh-TzcZDx1766
drwx------2rootroot409611-1222:28ssh-ykiRPk1815
drwx------2rootroot409611-0307:11vmware-root
实例3:在以后目次下查找一切用户具有读、写和实行权限的文件,并发出响应的写权限
命令:
find.-perm-7-print|xargschmodo-w
输入:
[root@localhosttest]#ll
总计312
-rw-r--r--1rootroot30210811-0306:19log2012.log
-rw-r--r--1rootroot011-1222:25log2013.log
-rw-r--r--1rootroot011-1222:25log2014.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxrwx2rootroot409611-1219:32test3
drwxrwxrwx2rootroot409611-1219:32test4
[root@localhosttest]#find.-perm-7-print|xargschmodo-w
[root@localhosttest]#ll
总计312
-rw-r--r--1rootroot30210811-0306:19log2012.log
-rw-r--r--1rootroot011-1222:25log2013.log
-rw-r--r--1rootroot011-1222:25log2014.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1219:32test3
drwxrwxr-x2rootroot409611-1219:32test4
[root@localhosttest]#
申明:
实行命令后,文件夹scf、test3和test4的权限都产生改动
实例4:用grep命令在一切的一般文件中搜刮hostname这个词
命令:
find.-typef-print|xargsgrep"hostname"
输入:
[root@localhosttest]#find.-typef-print|xargsgrep"hostname"
./log2013.log:hostnamebaidu=baidu.com
./log2013.log:hostnamesina=sina.com
./log2013.log:hostnames=true[root@localhosttest]#
实例5:用grep命令在以后目次下的一切一般文件中搜刮hostnames这个词
命令:
find.-name*-typef-print|xargsgrep"hostnames"
输入:
[root@peidatest]#find.-name*-typef-print|xargsgrep"hostnames"
./log2013.log:hostnamesina=sina.com
./log2013.log:hostnames=true[root@localhosttest]#
申明:
注重,在下面的例子中,用来作废find命令中的*在shell中的特别寄义。
实例6:利用xargs实行mv
命令:
find.-name"*.log"|xargs-imv{}test4
输入:
[root@localhosttest]#ll
总计316
-rw-r--r--1rootroot30210811-0306:19log2012.log
-rw-r--r--1rootroot6111-1222:44log2013.log
-rw-r--r--1rootroot011-1222:25log2014.log
drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1222:54test3
drwxrwxr-x2rootroot409611-1219:32test4
[root@localhosttest]#cdtest4/
[root@localhosttest4]#ll
总计0[root@localhosttest4]#cd..
[root@localhosttest]#find.-name"*.log"|xargs-imv{}test4
[root@localhosttest]#ll
总计12drwxr-xr-x6rootroot409610-2701:58scf
drwxrwxr-x2rootroot409611-1305:50test3
drwxrwxr-x2rootroot409611-1305:50test4
[root@localhosttest]#cdtest4/
[root@localhosttest4]#ll
总计304
-rw-r--r--1rootroot30210811-1222:54log2012.log
-rw-r--r--1rootroot6111-1222:54log2013.log
-rw-r--r--1rootroot011-1222:54log2014.log
[root@localhosttest4]#

要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在使用初期。
活着的死人 该用户已被删除
沙发
发表于 2015-1-21 05:21:14 | 只看该作者
说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。?
只想知道 该用户已被删除
板凳
发表于 2015-1-24 09:50:10 | 只看该作者
清楚了解网络的基础知识,特别是在Linux下应用知识,如接入internet等等。
若天明 该用户已被删除
地板
发表于 2015-1-31 22:54:53 | 只看该作者
应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。
小女巫 该用户已被删除
5#
发表于 2015-2-6 18:20:15 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
飘灵儿 该用户已被删除
6#
发表于 2015-2-18 00:09:58 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
分手快乐 该用户已被删除
7#
发表于 2015-3-4 06:07:36 | 只看该作者
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-9 01:25:33 | 只看该作者
Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-13 10:07:34 | 只看该作者
你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-20 19:10:26 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 12:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表