Answers:
您可以告诉find并且xargs都使用空终止符
find . -name "*.txt" -print0 | xargs -0 rm
或(更简单)使用的内置-delete动作find
find . -name "*.txt" -delete
或(感谢@kos)
find . -name "*.txt" -exec rm {} +
两者中的任何一个都应遵守系统的ARG_MAX限制,而无需xargs。
ARG_MAX我还要提到那find . -name "*.txt" -exec rm {} \;将是一个“安全击球”
-print0必须是最后一个选项(或至少在之后-name "*.txt"),否则这将使文件不再局限于*.txt ...
顺便说一句,如果您使用的不是find,则可以使用tr将换行符替换为空字节。
例如。即使文件名中有空格,下面的划线员也会删除目录中的最后10个修改的文件。
ls -tp | grep -v / | head -n 10 | tr "\n" "\0" | xargs -0 rm
find -name "*\ *.txt" | xargs rm适用于两个Word文件?