find命令与xargs

-xuan -xuan     2023-04-19     371

关键词:

一:find查找文件,xargs把find查找到的结果当做输入进行下一步的具体操作

#另外find可以可exec结合执行命令,但是exec是要等find命令执行完成之后才对find执行完成的结果进行操作,然而很不幸的是当文件太多的时候会出现文件队列过长的提示,这是应为linux有个临时内存地址只保存128K的数据,我们有个服务器目录中有数万的文件,要对其进行分类,使用exec就不行,因此就到了xargs大显身手的时候了:

1.1:常用参数:

1.1.1:-0,当sdtin含有特殊字元时候,将其当成一般字符,例如:

[root@saltminion ~]# echo "%" | xargs -0 echo > 1 
[root@saltminion ~]# cat 1
%

1.1.2:-a file 从文件中读入作为sdtin

# xargs  -a /etc/passwd  echo  > 1

# cat 1

技术图片

1.1.3:-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止

 

[root@saltminion ~]# cat 1.txt 
find a test file!
[root@saltminion ~]# cat 1.txt  | xargs -E "test" echo 
find a

1.1.4:-p 当每次执行一个argument的时候询问一次用户

[root@saltminion ~]# cat 1.txt 
find a test file!
技术图片

1.1.5:-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的 

 

[root@saltminion ~]# cat 1.txt 
find a test file!
[root@saltminion ~]# cat 1.txt  | xargs -n2   echo 
find a
test file!

1.1.6:-t 表示先打印命令,然后再执行 

1.1.7:-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给,可以用代替,可以用于对文件移动等操作。

#find的时间是从执行时间开始往前24小时为一天,如果是-ctime +1则是上一天当前时间之前的文件

 

# find /data/ftpsite/pmsc/radar/latlon/single/ -type f -mtime +1 | xargs -t -i  mv     /data/ftpsite/pmsc/radar/latlon/history/
# find /data/ftpsite/pmsc/radar/latlon/single/ -type f -mtime +1 | xargs -t -i  cp      /data/history/
# /bin/find  /data/ftpsite/pmsc/radar/latlon/single/  -type f -ctime +2 | xargs rm -rf #直接删除匹配到的文件,一定要指定类型,不然匹配到目录也统统删除 
# /bin/find /data/ftpsite/pmsc/radar/latlon/single/ -type f -mtime +2  | xargs -t -i  rm -rf    #适用于数量众多的文件删除且显示每一条执行的shell命令

 

技术图片

1.1.8:-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了

1.1.9:-s num 命令行的最好字符数,指的是xargs后面那个命令的最大命令行字符数

1.1.10:-L  num Use at most max-lines nonblank input lines per command line.-s是含有空格的。
1.1.11:-l  同-L 

1.1.12:-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
1.1.13:-x exit的意思,主要是配合-s使用。
1.1.14:-P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到。

find命令与xargs

...做输入进行下一步的具体操作#另外find可以可exec结合执行命令,但是exec是要等find命令执行完成之后才对find执行完成的结果进行操作,然而很不幸的是当文件太多的时候会出现文件队列过长的提示,这是应为linux有个临时内存地... 查看详情

xargs

find命令与xargs阅读(217)一:find查找文件,xargs把find查找到的结果当做输入进行下一步的具体操作#另外find可以可exec结合执行命令,但是exec是要等find命令执行完成之后才对find执行完成的结果进行操作,然而很不幸的是当文件太多... 查看详情

find命令处理之exec与xargs区别(代码片段)

对符合条件的文件执行所给的Linux命令,而不询问用户是否需要执行该命令。表示命令的参数即为所找到的文件,以;表示comman命令的结束。\是转义符,因为分号在命令中还有它用途,所以就用一个\来限定表示这是一个分号而不... 查看详情

每天一个linux命令(21):find命令之xargs

在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“... 查看详情

每天一个linux命令(文件操作):转载find命令之xargs

  在使用 find命令的-exec选项处理匹配到的文件时, find命令将所有匹配到的文件一起传递给exec执行。但有些系统对能够传递给exec的命令长度有限制,这样在find命令运行几分钟之后,就会出现溢出错误。错误信息通常... 查看详情

老男孩教育每日一题-2017年5月18日-说说|(管道)与|xargs(管道xargs)的区别

...args(管道xargs)的区别2.参考答案find |xargsls-ld##把前一个命令的结果,通过管道传递给后面的命令(ls-ld),传递的是文件名find |命令  ##把前一个命令的结果,通过管道传递给后面的命令,传递的是普通的文本,文字... 查看详情

find命令--xargs--exec

          find命令1.1、find命令选项-name按照文件名查找-perm按照文件权限来查找-prune可以使用find命令排除当前文件夹,不查找-user可以按照文件属主来查找-group可以按照文件数组来查找-mtime-n+n按照文件的更改时间来... 查看详情

exec与xargs区别

...个更不好复习一下 exec是对每个找到的文件执行一次命令,除非这单个的文件名超过了几k,否则不会出现命令行超长出报错的问题。而xargs是把所有找到的文件名一股脑的转给命令。当文件很多时,这些文件名组合成的命令... 查看详情

xargs

变量置换,主要用于不支持管道的shell命令,如:rm、sed等。比如:删除文件- ls|xargs-irm-rf{}文件改名- ls|xargs-imv{}{}.old将命令逐个替换到{}执行命令:xargs当find产生一个文件列表时,该列表提供给另一个命令有时是很有用的.$f... 查看详情

find&xargs(代码片段)

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具,空格是默认界定符,默认命令是echofind.-name"*log.txt"|xargsrm-rf#查找当前目录下所有的log.txt文件并删除find命令的执行结果通过xargs传给后面的rm-rf... 查看详情

对find,xargs,grep和管道的一些深入理解

...问题相信大家都知道在目录中搜索含有固定字符串文件的命令:1find.-name‘*.py‘|xargsgreptest 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是1find.-name‘*.py‘|greptest&nb 查看详情

find命令-exec选项,find命令配合xargs(代码片段)

一、find命令-exec选项这里只说两点:find正则匹配搜索,以及-exec选项1.正则匹配查找find/etc/-typef-name"s*"##在/etc/目录下搜索以s为文件名开头的文件;注意:如果文件名使用正则匹配,那么需要加双引号,否则会报错;这里只列举... 查看详情

详解linux——find命令(stat+exec+xargs+dd命令)(代码片段)

文章目录find命令1.根据名称查找文件2.根据文件修改时间查找文件stat命令touch命令根据文件的最后修改时间搜索文件3.根据文件大小查找文件dd命令按文件大小查找4.-exec和xargsfind命令在Linux操作系统中,find命令主要用于进行文... 查看详情

xargs详细

... http://czmmiao.iteye.com/blog/1949225简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find/sbin-perm+700|ls-l这样才是正确的find/sbin-pe... 查看详情

xargs参数代换

xargs的作用是产生命令需要的参数,主要是用于在命令结合管道的使用中给一些不支持管道的命令提供输入参数。例如:利用find找出~目录下由特殊权限的文件,并用ls命令列出文件列表:[[email protected] ~]$ find ~ ... 查看详情

xargs原理&使用(代码片段)

1.简介  之所以能用到这个命令,是由于很多linux命令不支持用管道传递参数,例如  find /sbin -perm +700 |ls -l  这个命令是错误的  find /sbin -perm +700 |xargs ls -l   这样才... 查看详情

搜索系统中所有以.repo结尾的文件并删除(find命令详解及xargs命令详解)(代码片段)

find/-name*.repo|xargsrm–rf//搜索以.repo结尾的文件并删除find命令详解精细查找文件或目录dfind[查找范围][查找条件表达式]常用查找条件:按名称查找:"-name",支持通配符"*"、"?"按文件大小查找:"-size",可使用"+"、"-"作为容量条件按... 查看详情

xargs用法详解(代码片段)

Xargs用法详解简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find/sbin-perm+700|ls-l这个命令是错误的find/sbin-perm+700|xargsls-l这样才是正确的xargs可... 查看详情