Macos 是否在Mac上按名称删除嵌套子目录?
如何通过mac上的命令行删除某个名称的所有子目录 如果我有Macos 是否在Mac上按名称删除嵌套子目录?,macos,command-line,Macos,Command Line,如何通过mac上的命令行删除某个名称的所有子目录 如果我有 /parent/foo /parent/child/foo /parent/child/child2/foo 如何从/parent运行命令来删除任何名为foo的文件夹及其所有内容 我试过这个命令,但没有成功: find . -type d -name foo -delete 目录的名称必须用引号括起来。 请执行以下操作: find . -type d -name "foo" -delete 使用find可以执行
/parent/foo
/parent/child/foo
/parent/child/child2/foo
如何从/parent
运行命令来删除任何名为foo
的文件夹及其所有内容
我试过这个命令,但没有成功:
find . -type d -name foo -delete
目录的名称必须用引号括起来。 请执行以下操作:
find . -type d -name "foo" -delete
使用
find
可以执行以下操作:
find . -d -type d -name a -exec rm -r {} \;
正如您所发现的那样,-delete
似乎不会删除非空目录(因此它相当于rmdir
而不是rm-r
),尽管这可能没有记录在案
-exec
执行一个命令,{}
被匹配的路径名替换,并且\代码>标记命令的结束。因此,这将递归删除每个匹配路径
-d
设置深度优先遍历,这意味着目录在其内容之后进行处理。如果省略此find
将首先删除该目录,然后尝试递归到该目录中–这将导致错误消息,但仍然有效
有一种使用zsh
的较短方法:
rm -r **/a
模式**
在任何深度搜索匹配的a
如果zsh
不是默认的shell,则可以使用其-c
参数从另一个shell运行命令:
zsh -c 'rm -r **/a'
HTH运行该命令的结果是什么?