find -print0和xargs -0原理及用法】的更多相关文章

平常我们经常把find和xargs搭配使用,例如: find . -name "*.txt" | xargs rm 但是这个命令如果遇到文件名里有空格或者换行符,就会出错.因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了. 这时候就需要-print0和-0了. find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符.find的默认在每一个结果后加一个'\n',…
看到命令find . -name checkout-cache -f -- 不明白其中-print0和 xargs -0的用法.查了一下,转载一篇备忘. xargs命令的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 以下内容转自http://blog.163.com/laser_meng@126/blog/static/16972784420117102638257/ 默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此我们看到的…
linux find命令中-print0和xargs中-0的用法. 1.默认情况下, find命令每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此find 的输出都是一行一行的: [bash-4.1.5] ls -l total 0 -rw-r--r-- 1 root root 0 2010-08-02 18:09 file1.log -rw-r--r-- 1 root root 0 2010-08-02 18:09 file2.log[bash-4.1.5] find .…
转载请注明出处:http://www.cnblogs.com/f-ck-need-u/p/5925923.html 学习这个xargs花了很长时间,在网上翻了很久也查了很多书关于xargs的介绍,都只是简单的介绍了它的几个用法,却没有介绍它工作的原理,man也只有简单的介绍,并没有说各个选项之间配合时的情况.所以我只能自己探索了,探索的路上确实充满了荆棘,不断的总结却不断的被实验推翻,每当以为自己得出了结论,却往往发现不够完善,所以我自己也是边测试边删改完成这篇学习记录,但是不得不说这过程充满了…
本文介绍了linux find命令中-print0和xargs中-0用法技巧,一些find命令的使用经验,需要的朋友参考下. 本节内容:linux find命令中-print0和xargs中-0的用法. 默认情况下, find命令每输出一个文件名, 后面都会接着输出一个换行符 ('n'), 因此find 的输出都是一行一行的: [bash-4.1.5] ls -ltotal 0-rw-r--r-- 1 root root 0 2010-08-02 18:09 file1.log-rw-r--r-…
文章是转载的,原文很精彩,我对其中个别地方没有快速理解,我在此予以补充,方便后续回顾理解. 本文介绍了linux find命令中-print0和xargs中-0用法技巧,一些find命令的使用经验,需要的朋友参考下. 本节内容:linux find命令中-print0和xargs中-0的用法. 1.默认情况下, find命令每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此find 的输出都是一行一行的: [bash-4.1.5] ls -l total 0 -rw-r--r-…
为什么需要xargs 管道实现的是将前面的stdout作为后面的stdin,但是有些命令不接受管道的传递方式,最常见的就是ls命令.有些时候命令希望管道传递的是参数,但是直接用管道有时无法传递到命令的参数位,这时候需要xargs,xargs实现的是将管道传输过来的stdin进行处理然后传递到命令的参数位上.也就是说xargs完成了两个行为:处理管道传输过来的stdin:将处理后的传递到正确的位置上. 可以试试运行下面的几条命令,应该能很好理解xargs的作用了: [root@node2 scpr…
默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此我们看到的 find 的输出都是一行一行的: [bash-4.1.5] ; ls -l total 0 -rw-r--r-- 1 root root 0 2010-08-02 18:09 file1.log -rw-r--r-- 1 root root 0 2010-08-02 18:09 file2.log [bash-4.1.5] ; find -name '*.log' ./file2.log ./…
默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('\n'), 因此我们看到的 find 的输出都是一行一行的: [bash-4.1.5] ; ls -l total 0 -rw-r--r-- 1 root root 0 2010-08-02 18:09 file1.log -rw-r--r-- 1 root root 0 2010-08-02 18:09 file2.log [bash-4.1.5] ; find -name '*.log' ./file2.log ./…
find cygnus/firmware_cygnus/target/linux/brcm5830/files/arch/arm/mach-iproc/pm_iproc/ -name "*.c" -print | xargs grep "USB"   原文地址:find中的-print0和xargs中-0的奥妙作者:改变自己 默认情况下, find 每输出一个文件名, 后面都会接着输出一个换行符 ('n'), 因此我们看到的 find 的输出都是一行一行的: [ba…