zoukankan      html  css  js  c++  java
  • find命令与xargs

    一: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 ,这个例子我没有想到,应该平时都用不到。

  • 相关阅读:
    石子游戏2
    礼物的最大价值
    CF512D. Fox And Travelling
    arc099F
    CF504E. Misha and LCP on Tree(长链剖分求k级祖先)
    agc031D
    CF555E. Case of Computer Network
    agc023D
    CF1406E. Deleting Numbers
    CF585F. Digits of Number Pi
  • 原文地址:https://www.cnblogs.com/-xuan/p/12289775.html
Copyright © 2011-2022 走看看