首页/系统/Linux 运维命令速查/场景:文件名含空格也能安全批量处理
文件与目录76 条

场景:文件名含空格也能安全批量处理

find 与 xargs 的黄金组合:-print0 与 -0 用 NUL 分隔,任何怪文件名都不会被拆裂。

Linux 运维命令速查系统更新于 2026-10-12
场景安全批量处理任意文件名
工具find -print0 | xargs -0 [-r] [-P N]
原因NUL 分隔不解释空格/引号

常用示例

常用示例
find . -name '*.log' -print0 | xargs -0 -r gzip -9
find . -name '*.log' -print0 | xargs -0 -r -P4 -n 20 gzip -9
find . -type f -print0 | xargs -0 -n 100 sha256sum > MANIFEST
-P4 并行 4 进程、-n 20 每批 20 个参数,吞吐与稳定性兼顾;-r 空输入不执行。

易错点

  • 忘记 -0 时 xargs 按空白拆分并解释引号,文件名含空格直接处理错目标
  • -I {} 模式下 xargs 一次只传一个参数且禁用并行,性能差,批量场景用 -n

数据来源与参考

  • man 1 find(GNU findutils 手册)
  • man 1 xargs(GNU findutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌