我正在使用 xargs,但参数列表太长

I'm using xargs, but the argument list is too long

我正在使用 Linux。我有一个包含超过 100,000 个文件的目录树,这些文件源自 MS Windows 系统。有些文件的名称中有空格。我想将这些文件转换为 unix。我运行这个命令

find . -type f | xargs -0 dos2unix

并收到此错误消息

xargs: argument line too long

我该如何解决这个问题?

如果您想将 xargs-0 一起使用以防止文件名中 spaces/special 个字符出现问题,您还必须将 -print0find 一起使用,因此它将用空字节分隔其输出:

find . -type f -print0 | xargs -0 dos2unix

这里不需要xargs,你可以

find . -type f -exec dos2unix '{}' +