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文件?