使用bash删除带有空格的目录
我正在使用以下命令删除名为“Test folder”的文件夹中的每个“.dummy”目录: 但是,这不起作用,因为它扩展到,例如:使用bash删除带有空格的目录,bash,find,Bash,Find,我正在使用以下命令删除名为“Test folder”的文件夹中的每个“.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 它可以工作,但会出现如下恼人的错
rm -rf Test Folder/.dummy
由于没有转义空格,因此此操作失败
我也试过这样的方法:
find "Test Folder" -type d -name .dummy -exec rm -rf {} \;
find: Test Folder/.dummy: No such file or directory
它可以工作,但会出现如下恼人的错误:
find "Test Folder" -type d -name .dummy -exec rm -rf {} \;
find: Test Folder/.dummy: No such file or directory
有没有办法使这两种解决方案都能成功?试试看
find "Test Folder" -type d -name .dummy -exec rm -rf \"{}\" \;
注意-exec
选项的rm-rf“{}”
arg中的额外引号。之所以需要它们,是因为名称testfolder/.dummy
中有一个空格。所以你需要报价。试试看
find "Test Folder" -type d -name .dummy -exec rm -rf \"{}\" \;
注意
-exec
选项的rm-rf“{}”
arg中的额外引号。之所以需要它们,是因为名称testfolder/.dummy
中有一个空格。所以你需要报价。有几件事。最简单的方法是更换和使用
$ find 'Test Folder' -type d -print0 | xargs -0 rm -rf
另一个选择是
$ find 'Test Folder' -type d -exec \'{}\' \;
有几件事。最简单的方法是更换和使用
$ find 'Test Folder' -type d -print0 | xargs -0 rm -rf
另一个选择是
$ find 'Test Folder' -type d -exec \'{}\' \;
查找“测试文件夹”-类型d-name.dummy'-delete查找“测试文件夹”-类型d-name.dummy'-delete实际需要额外的引号吗?我不确定它们是否正确。是否要在{}处转义引号?否则它们会被shell命令行解析吃掉。是否确实需要额外的引号?我不确定它们是否正确。您想\escape在{}处的引号,否则它们会被shell命令行parse吃掉。将
-depth
添加到find
命令,或者如果您有path/.dummy/path/.dummy
则会出错。Charlie,您的命令似乎会删除整个“测试文件夹”,而不仅仅是它的.dummy/“subdir(缺少-name.dummy
)将-depth
添加到find
命令中,或者如果您有path/.dummy/path/.dummy
,则会出现错误。Charlie,看起来您的命令将删除整个“测试文件夹”,而不仅仅是它的.dummy/”子文件夹(缺少-name.dummy
)