用find和xargs处理文件名中带空格的文件

Posted pogeba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用find和xargs处理文件名中带空格的文件相关的知识,希望对你有一定的参考价值。

我们经常用find和xargs来进行批处理文件。
常见的用法如:find ./ -name ".jpg" | xargs cp -t ./JPEGImages ,实现将当前目前下所有以.jpg结尾的文件复制到当前目录下的JPEGImages目录中。
但是当find找到一个文件名中含有空格的文件时,便会出现该文件被无法正确复制的问题。
有一个参数-print0,和默认的-print相比,当输入中有空格时,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非含有空格的输入流。
将代码修改为如下形式:

find ./ -name "*.jpg" -print0 | xargs -0 cp -t ./JPEGImages




以上是关于用find和xargs处理文件名中带空格的文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xargs 复制名称中包含空格和引号的文件?

linux中批量删除带空格的文件

find -print0和xargs -0原理及用法

find命令处理之exec与xargs区别

Linux xargs命令详解

使 xargs 处理包含空格的文件名