专业编程基础技术教程

网站首页 > 基础教程 正文

Linux基础命令find高级功能之xargs

ccvgpt 2024-07-28 12:18:30 基础教程 8 ℃

前面一篇我们讲到find命令和exec组合的一个高级使用,另外还有命令xargs的一个类似的结合应用。

xargs 是给命令传递参数的一个过滤器,可以将管道或标准输入的数据转换成参数,这意味着通过管道传递给 xargs 的输入将会包含换行.

Linux基础命令find高级功能之xargs

xargs是构建单行命令的重要组件之一。

find命令可以把匹配到的文件传递给 xargs 命令执行,这时可以使用 xargs 命令。

实际例子1:查找系统中的每一个普通文件,然后使用xargs命令来判断什么类型的文件

$find . -type f -print | xargs file

./IBZKPT: ASCII text

./INCAR: ASCII text

./POSCAR: ASCII text

./POTCAR: ASCII text

./CHGCAR: empty

./OUTCAR: ASCII text

实际例子2:在当前目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限

$find . -perm -7 -print | xargs chmod o-w

实际例子3:用grep命令在所有的普通文件中搜索vasp这个词

$find . -type f -print | xargs grep "vasp"

./OUTCAR: vasp.5.4.4.18Apr17-6-g9f103f2a35 (build Nov 19 2019 09:20:27) complex

./OUTCAR: LCOMPAT= F compatible to vasp.4.4

./OUTCAR: GGA_COMPAT = T GGA compatible to vasp.4.4-vasp.4.6

实际例子4:使用xargs执行mv

$find . -name "*.log" | xargs -i mv {} vasp4

结论:find命令是一个非常优秀的工具,它可以按照用户指定的准则来匹配文件。使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令。

Tags:

最近发表
标签列表