shell编程必须要掌握的命令-xargs
什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情。纯属个人理解,哈哈。不管是交互式的shell,还是非交互的shell,它都是由一些命令组成的。
所以命令很重要。xargs就是其中之一,并且还是相当重要的一个命令,为什么说它重要呢,因为他和能其他命令结合使用,把一个命令的输出,当作参数传给另一个命令。这个根find命令参数中的exec很像,但是不同:以下4点在网上找的,第一点,是亲身体验过,家里我用的是archlinux,当你通过exec传很多数据给后面的命令时,会卡在哪儿,其他的没试过,如果有兴趣的朋友可以自己比较一下他们速度,
[zhangy@BlackGhost music]$ time find /home/zhangy/download/ -name ".gz" -print
real 0m0.053s
user 0m0.003s
sys 0m0.003s
1,使用find 的exec选项去处理匹配到的选项时,find 一次性将匹配到得参数传给exec执行。但有的系统,对exec 传的参数长度有限制,这样在find 命令执行几分钟后会报溢出,错误信息通常是“参数列太长”或“参数列溢出"。
2,xargs 与find 命令合用的时候,find 把匹配到得命令传递给xargs ,xargs 每次只获取一部分文件,而不是全部。分批处理。
3, 使用exec选项,会为匹配的每个文件处理分配个进程,并不是将匹配到的文件作为一个参数一次执行,这样就会触发多个进程,进而使系统性能下降,影响处理效率。
4,xargs则只有一个进程、但xargs 处理是否分批 ,批次大小,也会受系统些可调参数影响。
#将把当前目录下面以test开头的文件用户改为zhangy
[root@BlackGhost download]# find . -name "test*" -print | xargs chown zhangy:users #查看当前目录中以test开头的文件所属用户
[root@BlackGhost download]# find . -name "test*" -print -exec ls -al {} \;
./test.sql.zip
-rw-r--r-- 1 zhangy users 1981 Feb 2 16:05 ./test.sql.zip
./test.zip
-rw-r--r-- 1 zhangy users 164 May 23 22:54 ./test.zip
[zhangy@BlackGhost download]# cut -d: -f1 < /etc/passwd | xargs echo >> /home/zhangy/userlist.txt
[zhangy@BlackGhost ddd]$ ls |xargs -i cp {} {}.bak
cp test test.bak
shell编程必须要掌握的命令-xargs的更多相关文章
- shell编程:定义简单标准命令集
shell是用户操作接口的意思,操作系统运行起来后都会给用户提供一个操作界面,这个界面就叫shell,用户可以通过shell来调用操作系统内部的复杂实现,而shell编程就是在shell层次上进行编程 ...
- Linux Shell编程(21)——复杂命令
更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell ...
- Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)
一.概述 在上一篇里讲到了shell脚本,shell按照命令在脚本中出现的顺序依次进行处理,对于顺序操作已经足够了,但许多程序要求对shell脚本中的命令加入一些逻辑流程控制,这样的命令通常叫做 结构 ...
- linux shell编程学习笔记(二) --- grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- shell编程基础(七): 处理文件命令sed与awk
一.sed(以行为单位处理文件) sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑 ...
- Shell 编程-常见的文件处理命令
touch 命令 touch命令用于创建空文件,例如有时应用程序希望在它们写入数据之前,某个日志文件就已经存在.这时可用touch命令创建一个空文件:touch test1:touch命令还可以用来改 ...
- 3.shell编程-文件查找之find命令
3.1.语法格式 find [路劲][选项][操作] 选项参数对照表 3.2.-name 查找/etc/目录下以.conf结尾的文件 find /etc/ -name "*.conf&quo ...
- shell编程 之 test命令
shell编程里的测试test命令基本可以分为3种数据类型,每种都不一样.个人更倾向于理解为条件语句的写法规则,就是test加条件加判断语句. 1 数值类型 基本可以分为6个判断:-eq等于,-ne不 ...
- Linux与Unix shell编程指南(完整高清版).pdf
找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分 ...
随机推荐
- /etc/resolv.conf options rotate
timeout:n sets the amount of time the resolver will wait for a response from a remote name server ...
- opencv 图像resize
这是文档中的函数原型 cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数说明src:要resize的原图,应该是一个矩阵 dsi ...
- session与getSession()用法总结
一.session 1.session的过期时间是从什么时候开始计算的?是从一登录就开始计算还是说从停止活动开始计算? 从session不活动的时候开始计算,如果session一直活动,session ...
- 列表初始化 分析initializer_list<T>的实现
列表初始化(1)_统一初始化 1. 统一初始化(Uniform Initialization) (1)在C++11之前,很多程序员特别是初学者对如何初始化一个变量或对象的问题很容易出现困惑.因为可以用 ...
- some try on func swap about & and *
import "fmt" func swap(x,y *int ) { //x ,y = y,x //fault /* t := *x *x = *y *y = t */ //tr ...
- Intelij idea 中文字体渲染异常解决方法
当 Font 选择的字体无法渲染时,则尝试使用该选项所选择的字体渲染.
- Flutter中极光推送的使用----jpush_flutter
原文地址:https://www.cnblogs.com/niceyoo/p/11095994.html 1.申请极光账号和建立应用 极光推送的官方网址为:https://www.jiguang.cn ...
- python基础】——python添加模块搜索路径和包的导入
方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\") 方法二:修改环境变量w用户可以修改系统环境变量PYTHONP ...
- Docker使用 - 容器
查看容器 命令:docker ps [options] options有: -a:查看所有容器,包含不在运行中的(不带-a参数,是只显示运行中的容器) -q:只显示容器ID -s:多加一列来显示总 ...
- 初学nodejs express小案例——小小相册(不涉及数据库,非常详细)
业务简介: 显示文件夹 点击显示相册 上传相册 一.在主页显示文件夹 首先,我们要建立以上的文件夹,其中views用于放模板ejs,uploads里放的是相册文件夹,public是网页所需要的css ...