如何删除具有特定名称的所有子目录

伊夫

我正在Linux上工作,并且有一个文件夹,其中包含许多子目录。我需要删除所有具有相同名称的子目录。例如,

dir
 |---subdir1
 |---subdir2
 |     |-----subdir1
 |---file

我要删除全部subdir1这是我的脚本:

find dir -type d -name "subdir1" | while read directory ; do
    rm -rf $directory
done

但是,我执行了它,但是似乎什么也没发生。

我也尝试过find dir -type d "subdir1" -delete,但仍然没有任何反应。

伊尔卡楚

如果find根本找不到正确的目录,则它们应该起作用:

find dir -type d -name "subdir1" -exec echo rm -rf {} \; 

要么

find dir -type d -name "subdir1" -exec echo rm -rf {} +

echo用于验证命令是否命中了所需的文件,将其删除以实际运行rm并删除目录。)

这两个管道来xargswhile read有缺点不寻常的文件名会导致一些问题。另外,find -delete将仅尝试删除目录本身,而不删除其内容。它在所有非空目录上都将失败(但是您至少应该得到错误)。

使用时xargs,默认情况下空格分隔单词,因此即使文件名带有空格也将不起作用。read可以处理空格,但是在您的命令中$tar,将变量拆分为空格的是未引用的扩展名

如果您的文件名没有换行符或尾随空格,这也应该起作用:

find ... | while read -r x ; do rm -rf "$x" ; done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何搜索所有子目录以找到具有特定名称的子目录?

如何删除所有子目录中具有给定名称的所有文件?

删除所有子目录中具有特定名称的文件

删除没有特定名称子目录的目录

仅列出具有特定名称的所有目录的直接子目录

重命名所有二级子目录中所有具有特定名称的文件

如何删除所有具有特定名称的文件?

如何从/删除具有特定名称的所有文件?

如何从目录中删除所有子目录?

获取具有特定名称的所有挂载目录

删除除与特定模式匹配的子目录以外的所有子目录

如何从所有子目录获取图像名称?

如何删除所有子目录?(unix shell脚本)

如何删除特定名称的所有文件夹而不删除其中的目录?

如何从特定给定的目录和所有子目录中搜索具有特定扩展名的文件

在所有目录中查找具有相同名称的子目录

如何使用FileZilla递归删除具有特定名称的所有文件

如何使用Powershell删除具有特定名称的所有文件夹

如何删除具有特定名称的所有节点spritekit

如何获得具有特定名称的所有节点

如何中止具有特定名称的所有作业?

从所有子目录复制具有特定扩展名的所有文件

在循环中如何更改具有特定名称的目录?

如何合并所有子目录中具有相同名称的文本文件?

如何确保所有新的子目录(和子子目录等)都具有g + s?

具有相同名称子目录的目录移动

如何删除具有特定名称的文件夹

如何从ArrayList中删除具有特定名称的对象

删除目录和所有子目录