我需要找到一种方法来从特定目录中删除子目录,如果不存在子目录,则不会收到错误。此命令将成功删除子目录(如果存在)
find /path/to/dir/* -maxdepth 1 -type d -exec rm -rf {} \;
但如果不存在,我会收到此错误:
查找:/path/to/dir/*:没有这样的文件或目录
另外,我使用的find
是而不是简单的,rm
因为有太多目录需要rm
处理,并且必须使用 单独处理它们find
。
我还注意到,find /path/to/dir/ -maxdepth 1 -type d -exec rm -rf {} \;
没有通配符实际上会删除目录目录也是如此。
答案1
您可以使用-mindepth
find 中的参数来防止它.
在目标目录中匹配。这应该可以解决您的问题。
find /path/to/dir/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} +