首页 > 系统相关 > Linux操作命令(五)1.find命令 2.xargs命令

Linux操作命令(五)1.find命令 2.xargs命令

时间:2023-02-27 16:59:02浏览次数:43  
标签:文件 xargs 操作命令 name 命令 txt find

1、find命令(一)

查找,沿着文件层次结构向下遍历,匹配符合条件的文件,并执行相应的操作

参数描述
-print 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

 

标签:文件,xargs,操作命令,name,命令,txt,find
From: https://www.cnblogs.com/qashan/p/17160334.html

相关文章

  • windows环境中,pm2下载成功后却显示不是内部或外部命令解决方法
    windows环境中,pm2下载成功后却显示不是内部或外部命令解决方法      一开始遇见这种情况很是头疼,百度了很多pm2下载成功却显示不是内部命令的原因,结果都不尽人意,......
  • sed命令的使用(替换)
    sed命令使用场景当你经历下面场景的时候你应该学会使用现在有多个文件,要对文件中同样的内容进行替换,要替换称相同的内容。一个一个打开文件从而进行修改,这个方法可以但......
  • Java方法:方法的重载、命令行传参、递归
    Java方法:方法的重载、命令行传参、递归方法的重载重载就是在一个类中,有相同的函数名称,但是形参不同的函数。方法重载的规则:方法名称必须相同;参数列表必须不同(个......
  • docker常用命令
    1.查询镜像dockerimages--删除镜像dockerrmiIMAGEID2.查询容器dockerps-a3.停止容器--停止容器dockerstopCONTAINERID--删除容器dockerr......
  • du命令
    du命令显示用于文件的块的数量。如果指定的File参数实际上是一个目录,就要报告该目录内的所有文件。如果没有提供File参数,du命令使用当前目录内的文件。如果File参数是一个......
  • linux基本功系列之uptime命令
    前言......
  • 容器网络调试怎么办?一条命令就搞定!
    nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。用途一个最典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级,是......
  • docker常用命令
    一、镜像管理命令1.搜索镜像,建议直接在dockerhub官网搜索会比较直观看到版本dockersearch 镜像名称  2.下载镜像dockerpull镜像名:版本号,如果要下载最新的......
  • windows 渗透测试常用的命令
    windows中渗透测试常用命令ifconfig/all获取获取域名、IP地址、DHCP服务器、网关、MAC地址、主机名nettime/domain查看域名、时间netview/domain查看域内所......
  • rabbitmq的启动命令和springboot整合使用rabbitmq
    环境:windows安装erlang和rabbitmq的过程这里不多说,记得两个的版本要对应。1.启动rabbitmq:进入sbin目录:其中可能报错:则需要终止已经开始的进程(可能是之前启动过)tasklist|......