使用bash删除带空格的目录

Mar*_*ote 1 bash find

我正在使用以下命令删除名为"Test Folder"的文件夹中的每个".dummy"目录:

rm -rf `find "Test Folder" -type d -name .dummy`
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为它扩展到,比如说:

rm -rf Test Folder/.dummy
Run Code Online (Sandbox Code Playgroud)

由于空格未被转义,因此失败.

我也尝试过这样的事情:

find "Test Folder" -type d -name .dummy -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

它工作,但它给出了一个恼人的错误,如下所示:

find: Test Folder/.dummy: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有没有办法让任何一种解决方案成功?

Cha*_*tin 9

有几件事.最简单的是改变和使用

$ find 'Test Folder' -type d -print0 | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)

另一个选择是

$ find 'Test Folder' -type d -exec \'{}\' \;
Run Code Online (Sandbox Code Playgroud)