处理由反引号命令产生的空格的路径

时间:2014-12-10 16:11:24

标签: bash unix

尝试从目录树中删除某些文件夹。

rm -r `find -name .sbas`

对于某些文件夹,它会像这样失败:

rm: cannot remove ‘./Reports/Report’: No such file or directory
rm: cannot remove ‘11/.sbas’: No such file or directory

文件夹路径中的空格使命令混淆,认为它有两条不同的路径。

处理此问题的最佳方法是什么?从文件夹名称中删除空格不是一种选择。

1 个答案:

答案 0 :(得分:3)

不要像find那样使用rm的输出。

使用find -delete

find . -name .sbas -delete

find不支持delete使用的系统:

find . -name .sbas -exec rm -r '{}' \;