find 文件中有空格 xargs 报错 处理方法

比如我要将所有的目录添加 可执行权限
所有的 文件加上可读权限
当遇到文件名中含有空格时, xargs就会报错说找不到XXX文件

1
2
find -type d -print0 |xargs -0 -n 1 -i chmod o+x {}
find -type f -print0 |xargs -0 -n 1 -i chmod o+r {}

查看 man find 文档

1
2
3
4
5

-print0
True; print the full file name on the standard output, followed by a null character (instead of the newline character that -print uses).
This allows file names that contain newlines or other types of white space to be correctly interpreted by programs that process the find out‐
put. This option corresponds to the -0 option of xargs.

xargs -i 表示 用{} 代替文件名

专门结合xargs 处理文件中的空白字符,此时xargs 需要加上参数 -0
从此,哥俩好再也不报错了