Linux有关xargs命令的用法说明
来源:才华咖 本文已影响2.96W人
来源:才华咖 本文已影响2.96W人
在Linux系统中使用xargs命令可以解决不少问题,特别是xargs命令配合find命令使用,能够发挥出更加惊人的效果。本文就来为大家介绍一下Linux系统xargs命令的用法。
在使用find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是xargs命令的用处所在,特别是与find命令一起使用。
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;
而使用xargs命令则只有一个进程。另外,在使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参数来确定。
可以查看xargs的返回状态来判断是什么问题:
#cut -d: -f1 《 /etc/passwd|sort|xargs echo
xargs exits with the following status:
0 if it succeeds
123 if any invocation of the command exited with status 1-125
124 if the command exited with status 255
125 if the command is killed by a signal
126 if the command cannot be run
127 if the command is not found
1 if some other error occurred.
Exit codes greater than 128 are used by the shell to indicate(指出)that a program died due to a fatal signal.
来看看xargs命令是如何同find命令一起使用的.,并给出一些例子。
(1.)用grep命令在当前目录下的所有普通文件中搜索hostnames这个词:
find 。 -name * -type f -print | xargs grep -i “hostname”
find 。 -type f -print | xargs grep -i “hostname”
find 。 -name “*”-type f -print | xargs grep -i “hostname”【三者相同】
注意:在上面的例子中, 用来取消find命令中的*在shell中的特殊含义。
(2.)查看所有以jdk开头文件的文件类型
# find 。 -name “jdk*” -type f -print | xargs file
。/jdk1.6.0_: gzip compressed data, from Unix, last modified: Wed Jun 29 14:03:13 2011
。/: Bourne-Again shell script text executable
。/: Bourne shell script text executable
(3.)在整个系统中查找内存信息转储文件(core dump),然后把结果保存到/tmp/ 文件中
#find / -name “core” -print|xargs echo “” 》 /tmp/
(4.)在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
#find 。 -perm 777 -print | xargs chmod o-w
(5.)查找查找2011-11-11 03:41:54时更改过的jdk文件
#find 。/ -name “jdk*”
。/jdk1.6.0_
。/
。/
#find 。/ -name “jdk*”|xargs ls -l --full-time2》/dev/null
-rwxr-xr-x 1 root root 63724381 2011-11-11 03:41:55.000000000 +0800 。/
-rw-r--r-- 1 root root 421 2011-10-28 17:15:31.000000000 +0800 。/
-rw-r--r-- 1 root root 102897638 2011-11-11 03:41:54.000000000 +0800 。/jdk1.6.0_
# find 。/ -name “jdk*”|xargs ls -l --full-time2》/dev/null|grep “2011-11-11 03:41:54”
-rw-r--r-- 1 root root 102897638 2011-11-11 03:41:54.000000000 +0800 。/jdk1.6.0_
(6)还有一个用法就是在杀远程主机的进程的时候,显示的信息会在本地显示。
ssh “ps -ef |grep httpd|awk ‘{print $2}’|xargskill -9”
以上就是Linux系统xargs命令的用法了,可以看到xargs命令很丰富,但是大部分都离不开和find命令搭配使用。
linux命令详解之chkconfig命令使用方法介绍
牛津深圳版英语九下Unit1《Greatexplorations》Reading说课稿
Linux系统中smbclient命令的使用方法
linux系统中head命令使用说明
实用的Linux/Unix系统磁带管理命令
Linux系统下使用grep命令搜索多个单词的方法
Linux常用的性能检测命令--sar
LINUX系统教程:passwd命令的用法
Linux认证系统管理:linuxmail命令发送邮件失败
ls命令在Linux操作中有哪些用法
Linux中source命令的用法
Linux/AIX系统实用监控命令
在linux 操作系统中uniq命令的说明和使用
Linux系统中strace命令的使用代码
java的String=a; a==null和a.equals(null)这两个判断有什么区别
有关说明文的说明方法
在Linux系统中使用lsof命令的教程
Java调用Linux命令行
Linux命令info的基本用法
说明文之说明方法与作用
雅思口语范文:My Experience as an English Learner
Linux的free命令使用方法
Linux中du命令参数的用法
linux中ipcs命令使用详解
关于Linux下su命令的实例讲解
关于PHP脚本修改Linux或Unix系统口令方法
关于Linux系统命令中exit与exit的区别
Linux Mint Cinnamon下使用vino-server配置桌面共享的方法
Linux shell常用命令汇总
Linux中Firefox如何安装Flash插件
DOS的Interlnk、Intersvr、Qbasic命令使用说明
有关Linux用软件实现RAID的方法
Linux文件查找命令find和xargs详解
Linux关闭selinux安全子系统的技巧
Unit six Opening and Closing Ceremonies口译材料
三年级英语《Is Yongxian’s New School Larger》教学反思
linux系统中scp命令的使用方法
linux命令中su和sudo区别
Linux系统下的uname命令
关于换届工作的有关说明