以下路径在文件夹下,我想删除所有名为
a
的文件夹。
1/2/3/a
1/2/3/b
10/20/30/a
10/20/30/b
100/200/300/a
100/200/300/b
我应该从父文件夹中使用什么linux命令?
find . -type d -name a -exec rmdir {} \;
如果您想递归删除其内容,请用-exec rmdir {} \;
或
-delete
替换。其他答案还包括有关这些版本的详细信息,也将其归功于它们。使用name“ a”并执行RM以根据您的愿望删除那些,如下所示:
首先使用LS列出的测试:
find . -name a -exec rm -rf {} \;
为了确保仅删除目录而不是普通文件,请使用“ -type d” arg(如评论中建议):
find . -name a -exec ls {} \;
“ {}”是每个文件的替换”。
这也有效 - 它将删除所有称为“ A”及其内容的文件夹:
我最终在这里希望删除我的
rm -rf `find . -type d -name a`
文件夹,然后再对我的工作进行备份。一个关键要求是rsync
选项。 首先,我首先运行此操作以在视觉上验证要删除的文件夹:
node_modules
然后我运行此删除所有内容:
-prune
thanks topistache
用名称
find . -type d -name node_modules -prune
删除所有目录,运行:
find . -type d -name node_modules -prune -exec rm -rf {} \;
其他答案缺少一个重要的事情:
foo
find -type d -name foo -a -prune -exec rm -rf {} \;
,GNU Find将使用匹配名称删除目录,然后尝试重新浏览以查找匹配的更多目录。
-prune
选项告诉它不要重复进入与条件相匹配的目录。
该命令对我有用。它递归地完成工作
-prune
。 - 当前文件夹
“ node_modules” - 文件夹名称
-prune
应该解决这个问题。 警告,如果您不小心将A
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
或find ./ -name "FOLDERNAME" | xargs rm -Rf
.
纠正多个答案,这是一个在Linux和Macos上都起作用的命令
/
我有100多个文件,例如
xargs rm -Rf
Above答案对我不起作用
rm -rf $(find . -type d -name __pycache__)
I给出了
log-12
log-123
log-34
....
,因此它删除了以的文件和文件夹的删除文件夹
和-type
递归删除文件夹,即使它具有文件。 如果您只想要文件夹
.
单独使用
log-
另一个:
rm -rf
earlier评论对我不起作用,因为我在结构中的某个文件夹中寻找一个文件夹名称中的表达式
以下在类似结构中的文件夹中工作:B/D/AB/CD/文件或C/D/E/F/F/F/File
在使用RM-RF之前检查一下
find -type d -name "log-*" -exec rm -rf {} \;
用递归内容的文件夹删除文件夹
一种更简单的方法是管道命令
此命令将删除所有技巧文件夹
找到路径/to//the/文件夹-maxDepth 1 -Name“ my_*” -type d-delete