zoukankan      html  css  js  c++  java
  • find -print0和xargs -0原理及用法

    平常我们经常把find和xargs搭配使用,例如:

    find . -name "*.txt" | xargs rm

    但是这个命令如果遇到文件名里有空格或者换行符,就会出错。因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了。

    这时候就需要-print0和-0了。

    find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个' ',所以输出结果是一行一行的。当使用了-print0之后,就变成一行了

    然后xargs -0表示xargs用NULL来作为分隔符。这样前后搭配就不会出现空格和换行符的错误了。选择NULL做分隔符,是因为一般编程语言把NULL作为字符串结束的标志,所以文件名不可能以NULL结尾,这样确保万无一失。

    所以比较我们推荐的比较保险的命令是

    find . -name "*.txt" -print0 | xargs -0 rm
  • 相关阅读:
    PHP创建socket服务
    linux配置PS1
    几个常用的linux命令
    MongoDB的分片集群搭建
    django-admin 配置
    django使用mysql数据库
    Django知识
    docker 监控之 cadvisor
    shell 拾遗
    shell 基数数值方法
  • 原文地址:https://www.cnblogs.com/liuyihua1992/p/9689314.html
Copyright © 2011-2022 走看看