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