[转帖]xargs详解
https://www.cnblogs.com/xiaofeng666/p/10800939.html
xargs与find经常结合来进行文件操作,平时删日志的时候只是习惯的去删除,比如 # find . -type f -name "*.log" | xargs rm -rf * 就将以log结尾的文件删除了,如果我想去移动或者复制就需要使用参数来代替了。
xargs -i 参数或者-I参数配合{}即可进行文件的操作。
[root@centos17 linshi]# find . -type f -name "*.log" | xargs -i cp {} /tmp/k/
[root@centos17 linshi]# find . -type f -name "*.log" | xargs -I {} cp {} /tmp/n/
结果出来了,
加-i 参数直接用 {}就能代替管道之前的标准输出的内容;
加 -I 参数 需要事先指定替换字符。
其他案例:
echo --help | xargs cat
#将echo输出的信息作为cat命令的参数使用,xargs传递参数,将前一个命令的标准输出作为后一个命令的参数使用
ls *.txt | xargs -i mv {} /mnt
#查看当前目录下所有txt文件,xargs的-i参数是将前面的标准输出作为参数传递给{}
echo "ni|shi|shui" | xargs -d"|" -n2
#xargs的-d参数指定分隔符,-n表示每行显示的列数
[root@b test]# find . -name "*.txt" -exec tar -cf a.tar {} \;
[root@b test]# tar -tf a.tar
./m.txt
find命令的-exec参数将前面find查找到的内容交给后面的tar命令打包,由于find每次查找一个就执行一次exec,所以tar最后打包的文件全部覆盖只剩下最后一个文件。
[root@b test]# find . -name "*.txt" | xargs -i tar cf b.tar {}
[root@b test]# tar -tf b.tar
./m.txt
[root@b test]# find . -name "*.txt" -print | xargs -i tar cf b.tar {}
[root@b test]# tar -tf b.tar
./m.txt
#写法相同,xargs的-I参数表示将前面find的信息传递到后面{}进行打包,每查找到一个文件就进行打包一次,所以会重复覆盖。
[root@b test]# find . -name "*.txt" -print0 | xargs -0 tar cf b.tar
[root@b test]# tar -tf b.tar
./a.txt
./b.txt
./m.txt
#print0表示将find查找的内容在同一行输出,xargs的-0参数指定以null为分隔符来进行打包。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
[root@x112 ~]# find linshi/ -mtime -3 | sed '1d' | xargs ls -lh-rw-r--r-- 1 root root 148 Oct 24 18:24 linshi/10_for1.sh-rw-r--r-- 1 root root 147 Oct 24 17:52 linshi/10_for.sh-rw-r--r-- 1 root root 43 Oct 24 23:47 linshi/c.txt-rw-r--r-- 1 root root 32 Oct 24 20:06 linshi/d.txt linshi/test:total 0[root@x112 ~]# find linshi/ -mtime -3 | xargs ls -lh-rw-r--r-- 1 root root 148 Oct 24 18:24 linshi/10_for1.sh-rw-r--r-- 1 root root 147 Oct 24 17:52 linshi/10_for.sh-rw-r--r-- 1 root root 43 Oct 24 23:47 linshi/c.txt-rw-r--r-- 1 root root 32 Oct 24 20:06 linshi/d.txt linshi/:total 36K-rw-r--r-- 1 root root 148 Oct 24 18:24 10_for1.sh-rw-r--r-- 1 root root 147 Oct 24 17:52 10_for.sh-rw-r--r-- 1 root root 160 Oct 17 16:14 a.txt-rw-r--r-- 1 root root 43 Oct 24 23:47 c.txt-rw-r--r-- 1 root root 32 Oct 24 20:06 d.txt-rw-r--r-- 1 ftp root 501 Aug 13 09:35 fstab.bak-rw-r--r-- 1 root root 99 Aug 19 20:36 host_for.sh-rw-r--r-- 1 ftp root 1.1K Aug 17 12:47 ks.cfg-rw-r--r-- 1 root root 63 Aug 19 20:46 scp_copy.shdrwxr-xr-x 6 ftp root 269 Sep 7 20:57 softwaredrwxr-xr-x 2 root root 6 Oct 27 00:06 test linshi/test:total 0[root@x112 ~]# find linshi/ -mtime -3linshi/linshi/10_for.shlinshi/10_for1.shlinshi/d.txtlinshi/c.txtlinshi/test |
总结:由上面案例可知,find命令查找的文件,默认包含查找文件夹范围本身,需要剔除文件夹范围本身,查询结果才为真。
[转帖]xargs详解的更多相关文章
- [转帖]万字详解Oracle架构、原理、进程,学会世间再无复杂架构
万字详解Oracle架构.原理.进程,学会世间再无复杂架构 http://www.itpub.net/2019/04/24/1694/ 里面的图特别好 数据和云 2019-04-24 09:11:59 ...
- [转帖]HBase详解(很全面)
HBase详解(很全面) very long story 简单看了一遍 很多不明白的地方.. 2018-06-08 16:12:32 卢子墨 阅读数 34857更多 分类专栏: HBase [转自 ...
- [转]xargs详解
为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以 ...
- linux shell 脚本攻略学习6-xargs详解
xargs是一条Unix和类Unix操作系统的常用命令.它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题. 例如,下面的命令: rm `find /path -type f` ...
- xargs详解
一.场景 这个命令是错误的 find ./ -perm +700 |ls -l 这样才是正确的 find ./ -perm +700 |xargs ls -l 二.用法 [root@localhos ...
- Linux文件查找命令find和xargs详解
PS:find是个很强大的命令,能够匹配正则,查找对应权限,能够帮你精确的定位你的系统中的任何地方任何目录下的文件.下面这篇是关于find命令用法最详细的一篇了,记录下.还有要注意的:本文的分号:其实 ...
- linux xargs详解
xargs [-0prtx] [-E eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null] [-d delimiter] [--delimiter d ...
- [转帖]xargs命令详解,xargs与管道的区别
xargs命令详解,xargs与管道的区别 https://www.cnblogs.com/wangqiguo/p/6464234.html 之前一直说要学习一下 xargs 到现在为止也没学习.. ...
- 【转帖】linux sort,uniq,cut,wc,tr,xargs命令详解
linux sort,uniq,cut,wc,tr,xargs命令详解 http://embeddedlinux.org.cn/emb-linux/entry-level/201607/21-5550 ...
- PHP5 session 详解【经典】 -- 转帖
PHP5 session 详解[经典] http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无状态,指的是不会维护http请求数据,http请求是独立的,非持久的.而越 ...
随机推荐
- 规模化敏捷框架何从入手?这篇文章把SAFe讲透了!
摘要:敏捷软件开发理念已渐渐被业界普遍接受,越来越多的公司和团队不得不面对一个新的问题,就是规模化敏捷的引入和实现.目前市场上规模化框架主要有SAFe,Less,Scrum of Scrums, Sp ...
- Hudi自带工具DeltaStreamer的实时入湖最佳实践
摘要:本文介绍如何使用Hudi自带入湖工具DeltaStreamer进行数据的实时入湖. 本文分享自华为云社区<华为FusionInsight MRS实战 - Hudi实时入湖之DeltaStr ...
- 买家手册:企业在选择 SBOM 供应商时需要注意什么?
Apache Log4j 和 Log4Shell 两大事件的发生,将软件物料清单(Software Bill of Materials, SBOM)推向安全防护前沿,成为企业保护其软件供应链的方式之一 ...
- 分享个本地maven配置
用阿里云的快有点受不了了,经常有包下载不了 settings.xml <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0&q ...
- Swagger2 Unable to infer base url. This is common
http://localhost:8080/swagger-ui.html 弹出: 解决方法:除了SwaggerConfig 上要加@EnableSwagger2 ,启动类上也要加 重启再次访问如下
- Mac问题记录
1. "App" can't be opened because Apple cannot check it for malicious software. 一般来说,在Syste ...
- tidevice中常用api 浅谈
- 设备管理类API: - `pair(device: Device) -> bool`:配对一个iOS设备,返回是否成功. - `unpair(device: Device) -> bo ...
- 41. 干货系列从零用Rust编写负载均衡及代理,websocket与tcp的映射,WS与TCP互转
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...
- 如何利用CCXT交易数字货币合约
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 对于币圈量化老司机来说,相信或多或少都有接触过ccxt这个接口,ccxt为我们提供了多交易所统一的标准格 ...
- Spark Final-Examination Note
重点 4567,Special 4,5 3道编程题,分值 35(基本书上,不超纲) 选填各 20分,简答 5 题/25分,编程题 3题/35分. 简答题参考每章课后习题 第 1 章简答题 1. 请阐述 ...