Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
Linux 删除名称相同的多个子文件夹的内容_Linux_Command Line_Grep_Find - Fatal编程技术网

Linux 删除名称相同的多个子文件夹的内容

Linux 删除名称相同的多个子文件夹的内容,linux,command-line,grep,find,Linux,Command Line,Grep,Find,我的文件夹结构如下所示: |-20200912 -fringe -other |-20200915 -fringe -other ... 我想删除所有名为“边缘”的文件夹的内容。我如何用一个命令实现这一点 我在伪代码中想到了这样的事情: find-名称为“riger”-键入d-exec rm您希望通过rm处理文件而不是目录,因此我将使用正则表达式在目录路径中搜索带有riger的文件 find -regex "^.*/fringe/.*$"

我的文件夹结构如下所示:

|-20200912
    -fringe
    -other
 
|-20200915
    -fringe
    -other 
...
我想删除所有名为“边缘”的文件夹的内容。我如何用一个命令实现这一点

我在伪代码中想到了这样的事情:


find-名称为“riger”-键入d-exec rm

您希望通过rm处理文件而不是目录,因此我将使用正则表达式在目录路径中搜索带有riger的文件

find -regex "^.*/fringe/.*$" -type f -exec rm '{}' \;
我会将rm更改为ls,以确保在运行实际rm之前预期结果。

您已经接近了

find-名称“边缘”-类型d-exec rm-rf{}+
这将删除每个名为
的目录以及其中的所有内容

单引号和双引号在这里没有什么区别,但是如果您想逐字传递某些内容,通常更喜欢单引号(可能的例外是,您要传递的内容包含文字单引号)

如果要删除目录的内容,请重试

... -execdir sh -c 'rm '*' \;

您可以在exec命令中强制清除:

find -name fringe -type d -execdir sh -c 'rm {}/*' \;

谢谢!但是当我只想删除内容而不想删除目录本身时?我看到了一个类似于
查找的东西-名称'rapper'-type d-exec rm-rf{}/*
,但还不能正常工作