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

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

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

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

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

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

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

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

最新文章

  1. UWP 动画系列之模仿网易云音乐动画
  2. Weblogic新增域(可以配置新端口)
  3. 【读书笔记】iOS-数据交换格式
  4. Linux开机流程
  5. Linux 安装图形界面及远程连接
  6. 安装SQL Server 2014
  7. SurfaceView的使用
  8. Esper系列(二)时间窗口、长度窗口、cast、注解、自定义函数、静态方法
  9. 如何在Azure环境里做好信息传递可扩展性经验分享
  10. java.lang.NoClassDefFoundError: javax/servlet/ServletContext
  11. NET Framework 4.5新特性 数据库的连接加密保护。
  12. Eclipse中常用的操作单词
  13. JAVA中生成、解析二维码图片的方法
  14. 基于MSRDS机器人仿真平台的多机器人PID编队控制算法
  15. vue 倒计时组件
  16. sql 语句中count()有条件的时候为什么要加上or null
  17. 来,了解一下Java内存模型(JMM)
  18. Linux-文件描述符的本质及与文件指针的区别
  19. bzoj5020: [THUWC 2017]在美妙的数学王国中畅游
  20. leaflet入门(三)使用GeoJSON创建矢量图形

热门文章

  1. c语言程序设计案例教程(第2版)笔记(六)—字符串处理实例
  2. PHP获取今天内的时间 今天开始和结束的时间戳
  3. Oracle查询使用空间比较大的前15个表
  4. java批处理、MySQL批处理
  5. node入门(一)——安装
  6. 静态代理,jdbc动态代理和cglib动态代理
  7. 白话容器namespace
  8. Shiro 自定义登陆、授权、拦截器
  9. R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验
  10. 洛谷 P1364 医院设置