Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 是否在Mac上按名称删除嵌套子目录?_Macos_Command Line - Fatal编程技术网

Macos 是否在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可以执行

如何通过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
可以执行以下操作:

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

运行该命令的结果是什么?