$ xargs -L 1 find -name *txt jiyik.txt *md jiyik.md -0 与find命令 由于xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。 find命令有一个特别的参数 -print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。 $ find /path -type f -print0...
六、-0 参数与 find 命令 由于xargs默认将空格作为分隔符,所以不太适合处理文件名,因为文件名可能包含空格。 find命令有一个特别的参数-print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。 $ find /path -type f -print0 | xargs -0 rm 上面命令删除/path路径下的所有文件。
因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了。 这时候就需要-print0和-0了。 find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个'\n',所以输出结果是一行一行的...
因为xargs识别字符段的标识是空格或者换行符,所以如果一个文件名里有空格或者换行符,xargs就会把它识别成两个字符串,自然就出错了。 这时候就需要-print0和-0了。 find -print0表示在find的每一个结果之后加一个NULL字符,而不是默认加一个换行符。find的默认在每一个结果后加一个'\n',所以输出结果是一行一行的...
find命令有一个特别的参数 -print0,指定输出的文件列表以null分隔。然后,xargs命令的-0参数表示用null当作分隔符。 $ find /path -type f -print0 | xargs -0 rm 上面命令删除/path路径下的所有文件。由于分隔符是null,所以处理包含空格的文件名,也不会报错。
针对该问题,find提供了一个print0选项,设置find在输出文件名后自动添加一个NULL来替代换行符,而xargs也可以通过-0选项,指定使用NULL而不是空格、Tab制表符、回车符为分隔符和结束符。
$ find/path-type f-print0|xargs-0rm 上面命令删除/path路径下的所有文件。由于分隔符是null,所以处理包含空格的文件名,也不会报错。 还有一个原因,使得xargs特别适合find命令。有些命令(比如rm)一旦参数过多会报错"参数列表过长",而无法执行,改用xargs就没有这个问题,因为它对每个参数执行一次命令。
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 ...
看到命令find . -name '*.h' -print0 | xargs -0 checkout-cache -f -- 不明白其中-print0和 xargs -0的用法。查了一下,转载一篇备忘。 xargs命令的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 以下内容转自http://blog.163.com/laser_meng@126/blog/static/169727844201171...
-xargs -0的包含空格的文件的操作。 【起因】使用find+rm命令无法删除带有空格的文件。 xargs命令输出 【原因】:xargs默认是以空白字符(空格、换行符、制表符)来分割记录的,实际上rm删除的数据便是./one和file.txt。而 【解决方案】:此时我们不能使用默认的分割符,而应该使用自定义的分割符!我们知道find命令,文...