Linux操作命令(五)1.find命令 2.xargs命令
1、find命令(一)
查找,沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作
| 参数 | 描述 |
|---|---|
| find 命令将匹配的文件输出到标准输出 | |
| -exec | find 命令对匹配的文件执行该参数所给出的 shell 命令 |
| -name | 按照文件名查找文件 |
| -type | 查找某一类型的文件 |
| -prune | 使用这一选项可以使 find 命令不在当前指定的目录中查找,如果同时使用 -depth 选项,那么 -prune 将被 find 命令忽略 |
| -user | 按照文件属主来查找文件 |
| -group | 按照文件所属的组来查找文件 |
| -mtime -n +n | 按照文件的更改时间来查找文件,-n 表示文件更改时间距现在小于 n 天,+n 表示文件更改时间距现在大于 n 天,find 命令还有 -atime 和 -ctime 选项 |
打印当前目录下的文件目录列表:find . -print
打印当前目录下所有以.txt 结尾的文件名:find . -name "*.txt" -print;-iname 选项跟-name 选项作用一样,不同的地方在于-iname 会忽略字母大小写
打印当前目录下所有以.txt 或.pdf 结尾的文件名:find . \( -name "*.pdf" -or -name "*.txt" \)
打印当前目录下所有不以.txt 结尾的文件名:find . ! -name "*.txt"
2、find 命令(二)
根据文件类型、权限、所有者及操作符来查找匹配文件
根据文件类型来查找文件,使用 -type 选项,常见 find 文件类型见下表:

根据文件权限查找文件,使用 -perm 选项。所有者使用 -user 选项
另外,find 命令可以通过逻辑操作符来创建更复杂的逻辑关系

打印当前目录下所有以 .txt 结尾的符号链接: find . -type l -name “*.txt” -print
打印当前目录下所有权限为 777 的 php 文件:find . -type f -name "*.php" -perm 777
打印当前目录下 root 用户拥有的所有文件:find . -type f -user root
打印当前目录下权限不是 777 和 664 的所有文件:find . -type f \( ! -perm 777 and ! -perm 664 \)
3、find 命令(三)
使用 find 命令的 -exec 选项来实现对查找到的文件执行指定的动作命令
找到当前目录下所有 php 文件,并显示其详细信息: find . -name "*.php" -exec ls -l {} \;
-exec 是 find 命令对找到的文件执行的动作,这个动作就是对找到的文件执行命令,上面的命令就是ls -l {}。在这里说明一下{}和\;,{}其实它就是一个占位符,在 find 命令的执行过程中会不断地替换成当前找到的文件,相当于”ls -l 找到的文件”。而\;是 -exec 命令结束的标记,因为规定 -exec 后面的命令必须以;结束,但;在 shell 中有特殊含义,必须要转义,所以写成\;。
4、xargs 命令
可以用管道将一个命令的 stdout(标准输出)重定向到另一个命令的 stdin(标准输入)。但有些命令只能以命令行参数的形式接收数据,而无法通过 stdin 接收数据流。在这种情况下,无法通过管道将数据重定向给这些命令。
这时 xargs 就可以发挥它的作用了,xargs 命令可以从标准输入接收输入,并把输入转换为一个特定的参数列表。
| 参数 | 描述 |
|---|---|
| -n | 指定每行最大的参数数量 |
| -d | 指定分隔符 |
将多行输入转换为单行输出:cat a.txt | xargs
将单行输入转换为多行输出:echo "1 2 3 4 5 6 7" | xargs -n 3 ;-n 用于指定每行最大的参数数量值

将单行输入转换为多行输出,指定分隔符为 i:cat b.txt | xargs -d i -n 3

查找当前目录下所有 c 代码文件,统计总行数:find -type f --name "*.c" | xargs wc -l

Linux操作命令(五)1.find命令 2.xargs命令的更多相关文章
- linux包之findutils之find和xargs命令
解释 [root@localhost ~]# rpm -qa|grep findfindutils-4.4.2-6.el6.x86_64 find 路径 测试 动作 三个步骤的处理过程查找一个或多个目 ...
- 【转】linux中的cut/tr/join/split/xargs命令
1. cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field, ...
- Linux命令:xargs命令详解,xargs与管道的区别
阅读目录 为什么要用xargs,问题的来源 xargs是什么,与管道有什么不同 xargs的一些有用的选项 回到顶部 为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人 ...
- 每日linux命令学习-xargs命令
xargs命令 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据 ...
- 【Linux常见命令】xargs命令
xargs - build and execute command lines from standard input. 从标准输入< 方向获取数据,再创建和执行命令 xargs 是给命令传递参 ...
- xargs命令_Linux xargs命令:一个给其他命令传递参数的过滤器
本文要为大家介绍的命令是 xargs,我们把它称为护花使者,因为它总是乐于协助其他的命令来完成一些事情.下面一起来看看它是如何护花的. xargs 是 execute arguments 的缩写,它的 ...
- linux操作命令 开发人员需要掌握的一些命令
1.man 查看帮助 2.命令 --help 简单帮助 3.help cd 查看一些Linux 命令行的一些内置命令 4.cp 粘贴复制命令 eg:cp yum.log /root/ 5.find ...
- Linux--find命令和 xargs命令组合
find 查找文件的命令,并可以做出相应的处理 命令格式: find filename [选项][-print -exec -ok ...] 选项参数: 1.-name :按照文件名称查找,可以提前c ...
- linux中exec和xargs命令的区别和优劣分析
find的exec及ok命令 exec命令的格式为: exec command {} \; exec后面跟着的是操作命令,然后跟着{}表示每一个参数,然后空格,然后"\;".{}之 ...
- linux每天一小步---xargs命令详解
1 命令功能 xargs用来从标准输入中执行命令行 xargs命令用来将一些不支持管道传递参数的命令而使之支持 2 命令语法 xargs [选项参数] commands 3 命令参数 -O 当标准输 ...
随机推荐
- mysql数据库(字段约束条件)
什么是字段约束 字段约束就是将字段的内容定一个规则,我们要按照规则办事 约束 描述 关键字 非空约束 限制该字段的数据不能为null not null 唯一约束 保证该字段的所有数据都是唯一.不重复的 ...
- 【JVM】经典垃圾回收器
本文已收录至Github,推荐阅读 Java随想录 微信公众号:Java随想录 CSDN: 码农BookSea 转载请在文首注明出处,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益.让我们一起维护 ...
- git相关问题解析,你想要的都有🔥
官网文档: https://git-scm.com/doc 本地克隆远程代码仓库 git clone 地址 本地同步全量历史数据,克隆所有文件的历史记录 git clone 地址 -depth 1 本 ...
- AcWing342. 道路与航线
原题链接 解题思路 这题用\(SPFA\)会被卡,所以我们不能用\(SPFA\) 但是观察数据我们可以发现对于道路,\(0≤C_i≤10^{5}\) 所以对于每个连通块(内部不存在航线),我们可以用\ ...
- JavaScript:对象:如何创建对象?
JS是面向对象的语言,除开基础数据类型,其他所有的数据类型都是对象,包括函数. 如何去理解对象,什么是对象呢? 举个例子,比如我们将日常生活中见到的猫这种动物,抽象成一个类Cat,这里不去谈类是什么概 ...
- Django之SQL注入漏洞复现(CVE-2021-35042)
前言 SQL注入的原理是对web请求,表单或域名等提交查询的字符串没有进行安全检测过滤,攻击者可以拼接执行恶意SQL命令,导致用户数据泄露 漏洞原理 Django 组件存在 SQL 注入漏洞,该漏洞是 ...
- 1、Java数据类型
1.基本数据类型的变量: /** * 1.基本数据类型的变量: * * 1).整数类型:byte(1字节=8bit),short(2字节),int(4字节),long(8字节) * * 2).浮点数类 ...
- JS比较数值大小
一. 简单循环算法 代码如下: const numbers = [5, 6, 2, 3, 7]; let max = -Infinity; for (let i = 0; i < numbers ...
- 大数据分析新玩法之Kusto宝典 - 新书发布,免费发行
我很高兴地跟大家分享,我在元旦期间编写的一本新书今天上线,并且免费发行,大家可以随时通过 https://kusto.book.xizhang.com 这个地址访问,也可以下载 PDF 的版本, 这本 ...
- 通过Google Cloud Storage(GCS)管理Terraform的状态State
管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS. 首先要创建一个Bucket: $ gsutil mb -p pkslow -l us-west1 -b on gs ...