linux命令(16)---find命令与xargs_find技巧2

xargs

在使用find查找文件情况下是一次批量输出,此处并无不可,但是当查找的文件需要做处理时,可能由于参数列过长或参数列溢出造成信息提示错误,或得不到想输出的结果,

此时find通过管道方式可实现此功能,它的作用是将参数列表转换成小块分段传递给其他命令,避免参数列信息出错问题,并且可得到可用的输出结果。

【实例1】表示查询当前目录下所有普通文件并以长格式方式列出,但是已经输出目录文件,这并不是想输出的结果,使用xargs可实现该功能。

[[email protected] tmp]# find -type f | ls -l
total 20
-rw-r--r--. 1 root      root         0 Apr  6 10:57 file4
-rw-r--r--. 1 root      root      1562 Apr 14 16:41 passwd
----------. 1 root      root      1114 Apr 14 16:41 shadow
drwxr-xr-x. 2 root      root      4096 Apr 14 17:59 test1
-rw-rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:38 test10
-rw-rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:39 test11
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test13
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test14
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test15
drwxr-xr-x. 2 root      root      4096 Apr 14 18:09 test2
drwxr-xr-x. 2 root      root      4096 Apr 14 18:09 test3

//表示将find查找到的结果输入给xargs,再由"ls -l"处理,此处也可以执行"rm"命令,有点类似 "-exec"但是,可能会造成溢出现象。
[[email protected] tmp]# find -type f | xargs ls -l
-rw-r--r--. 1 root      root         0 Apr  6 10:57 ./file4
-rw-r--r--. 1 root      root      1562 Apr 14 16:41 ./passwd
----------. 1 root      root      1114 Apr 14 16:41 ./shadow
-rw-rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:38 ./test10
-rw-rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:39 ./test11
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 ./test13
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 ./test14
-rw-rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 ./test15

//还可实现权限批量修改
[[email protected] tmp]# find -type f | xargs chmod u-w
[[email protected] tmp]# ll
total 20
-r--r--r--. 1 root      root         0 Apr  6 10:57 file4
-r--r--r--. 1 root      root      1562 Apr 14 16:41 passwd
----------. 1 root      root      1114 Apr 14 16:41 shadow
drwxr-xr-x. 2 root      root      4096 Apr 14 17:59 test1
-r--rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:38 test10
-r--rw-r--. 1 nodelinux nodelinux    0 Apr 14 15:39 test11
-r--rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test13
-r--rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test14
-r--rw-r--. 1 hadoop    hadoop       0 Apr 14 15:49 test15
drwxr-xr-x. 2 root      root      4096 Apr 14 18:09 test2
drwxr-xr-x. 2 root      root      4096 Apr 14 18:09 test3

//列出文件类型
[[email protected] tmp]# find -type f | xargs file    
./test13: empty
./shadow: ASCII text
./file3:  ASCII text
./passwd: ASCII text
./test10: empty
./test15: empty
./test14: empty
./test11: empty
./file4:  empty

//查询指定文件,并过滤文件中"hell"内容
[[email protected] tmp]# find -type f -print | xargs grep "hell"
./file3:hello word

//查找当前目录下不属于目录文件的所有文件,则将其打包
[[email protected] tmp]# find -not -type d | xargs tar zcvf b.tar.gz
./test13
./shadow
./file3
./passwd
./a.tar.gz
./test10
./test15
./test14
./test11
./Thu
./file4
[[email protected] tmp]# ls
Thu       b.tar.gz  file3  passwd  test1   test11  test14  test2
a.tar.gz  file15    file4  shadow  test10  test13  test15  test3

//一个意思,将当前目录下所有属于普通文件的所有文件打包,
[[email protected] tmp]# find -type f -print0 | xargs -0 tar zcvf c.tar.gz
./test13
./shadow
./file3
./passwd
./a.tar.gz
./test10
./test15
./test14
./test11
./Thu
./b.tar.gz
./file4
[[email protected] tmp]# ls
Thu       b.tar.gz  file15  file4   shadow  test10  test13  test15  test3
a.tar.gz  c.tar.gz  file3   passwd  test1   test11  test14  test2
时间: 2024-10-06 19:15:04

linux命令(16)---find命令与xargs_find技巧2的相关文章

Linux以及Android开发中的小技巧和长繁命令记录收集

不断更新收集中.... 2014071743 ssh以nx_guest的身份登录到172.24.221.137,然后在172.24.221.137与172.24.61.252的8080端口建立网络连接,同时创建端口为5678的本地代理服务 ssh -C -f -N -o 'TCPKeepAlive=yes' -L 5678:172.24.61.252:8080 [email protected] 反编译android下的二进制程序 ./prebuilts/gcc/linux-x86/arm/ar

linux命令(16)---文件权限管理命令

在之前使用过windows系统的都知道,可为文件设置权限,那么这权限是怎么设置的,之前在"linux(15)---用户管理命令"中提到,系统中的用户主要是实现资源分享,那在系统中的文件权限自然也是针对用户而言设置的权限,如果没有系统没有用户,那设置权限也无意义,文件权限彻底是"某用户针对该文件有哪些权限"可对文件进行哪些相关操作. 在linux系统中具有着"一切皆文件的概念",当然也分了很多文件类型,但是在文件权限设置上只分为"文件权限

Linux学习笔记之命令技巧、bash支持的引号作用及文件通配符

命令技巧: 命令行使用技巧: Ctrl + a  光标跳转行首 Ctrl + e  光标跳转行尾 Ctrl + u  删除光标至行首的内容 Ctrl  + k  删除光标至行尾内容 Ctrl  + l  实现清屏 命令历史使用技巧: !n  执行命令历史中第N行命令 !-n  执行历史命令中倒数第N行命令 !!   执行上一条命令 !CHARACTER  执行历史命令中最近一次以CHARACTER开头的命令 !$ 引用前一个命令的最后一个参数 ESC 松开按.  引用前一个命令的最后一个参数 命

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

软件 ◆ 分享 论坛 投稿 热门标签: 安全 活动 docker 图书 黑客 Nginx 面试 DNS 搜索 搜索 Linux.中国 - 开源社区?技术 ◆ 学习?查看内容 Linux mkdir.tar 和 kill 命令的 4 个有用小技巧 2015-7-22 11:20| 查看: 3005| 评论: 8| 收藏: 8| 分享: 0 原文:http://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/作者: Avishek Kumar

Linux命令行文本加密的小技巧

Linux命令行文本加密的小技巧 我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享. ROT13文本编码 介绍 ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码.把 ROT13 称为"加密"是大方的,"文本模糊处理"更准确些.有时候它被用来隐藏文本中潜在的攻击内容. 原理 套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后 的对应字母,有需要

Linux 系统中 sudo 命令的 10 个技巧

概览 sudo 表示 "superuser do". 它允许已验证的用户以其他用户的身份来运行命令.其他用户可以是普通用户或者超级用户.然而,大部分时候我们用它来以提升的权限来运行命令. sudo 命令与安全策略配合使用,默认安全策略是 sudoers,可以通过文件 /etc/sudoers 来配置.其安全策略具有高度可拓展性.人们可以开发和分发他们自己的安全策略作为插件. 与 su 的区别 在 GNU/Linux 中,有两种方式可以用提升的权限来运行命令: 使用 su 命令 使用 s

linux应用之test命令详细解析

test命令用法. 功能:检查文件和比较值 1)判断表达式 if test  (表达式为真) if test !表达式为假 test 表达式1 –a 表达式2                  两个表达式都为真 test 表达式1 –o 表达式2                 两个表达式有一个为真 2)判断字符串 test –n 字符串                                   字符串的长度非零 test –z 字符串                         

linux系统管理的常用命令

w命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作: [[email protected] ~]# w  17:04:13 up  1:05,  2 users,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT root   

三十、监控IO性能、free命令、ps命令、netstat查看网络状态、Linux下抓包

一.监控IO性能 CPU.内存有剩余,但是系统负载还是很高,用vmstat查看发现b列或者wa列比较大,就说明磁盘有问题,那么就要更详细的查看磁盘. iostat命令:在安装sysstat包时就会安装此命令. 用法:可以直接输入查看,也可以加数字1,类似vmstat. # iostat Linux 3.10.0-693.el7.x86_64 (yaowei-01) 2018年03月21日 _x86_64_ (2 CPU) avg-cpu:  %user   %nice %system %iowa