我有一行shell脚本:
rm -rf `find something`
问题是,如果find返回带空格的路径,rm
当然会将空格解释为两个不同路径之间的分隔符,并且命令失败。
有没有办法告诉find
在它返回的路径周围加上引号或其他什么来解决这个问题?
答案 0 :(得分:4)
为了更安全,你可以使用
$ find start_dir -print0 -name something | xargs --null rm -rf
使用NUL(0)字符作为文件之间的分隔符。
答案 1 :(得分:1)
find something -exec rm {} \;
但我有点担心......
答案 2 :(得分:0)
你可以这样做:
find start_dir -name something -print0 | xargs -0 /bin/rm -rf
答案 3 :(得分:0)
稍微快一点的方法(用你想要的任何条件替换“某事”):
find something -exec rm -rf {} +