2009-01-08 62 views
1

我使用以下命令来删除一个名为‘test文件夹’文件夹中的每一个“.dummy”目录:删除目录用空格使用bash

rm -rf `find "Test Folder" -type d -name .dummy` 

然而,这不起作用,因为它扩大说:

rm -rf Test Folder/.dummy 

由于空白不逃脱,这失败。

我也尝试过这样的事情:

find "Test Folder" -type d -name .dummy -exec rm -rf {} \; 

它的工作原理,但它提供了一个恼人的错误是这样的:

find: Test Folder/.dummy: No such file or directory 

有没有一种方法,使任何一个解决方案成功吗?

回答

9

一些事情。最简单的是改变和使用

$ find 'Test Folder' -type d -print0 | xargs -0 rm -rf 

另一种选择是

$ find 'Test Folder' -type d -exec \'{}\' \; 
2

尝试

find "Test Folder" -type d -name .dummy -exec rm -rf \"{}\" \; 

注意在rm -rf "{}" ARG到-exec选项额外的报价。它们是必需的,因为名称Test Folder/.dummy中有一个空格。所以你需要报价。

+0

是额外的引号实际需要?我不确定他们是谁。 – 2009-01-08 02:03:43

+0

你想在\ {}处加上引号,否则它们将被shell命令行解析所使用。 – 2009-01-08 02:04:42

1

找到 “测试文件夹” 型d -name '.dummy' -delete