find . -maxdepth 1 -mindepth 1 -type d 然后 find . -maxdepth 1 -mindepth 1 -type d -exec rm -rf '{}' \; 要添加说明,请执行以下操作: 由于.,find在当前目录中启动,并且仅在-maxdepth和-mindepth都设置为1时才保留在当前目录中。-type d告诉find只匹配目录。 find也有一个-exec标志,可以将其结果传递给另一个函数,在本例中为rm。'{}' \;是这些结果的传递方式。See this answer for a more complete explanation of what {} and \; do
7条答案
按热度按时间jyztefdp1#
要删除所有目录和子目录,只保留工作目录中的文件,我发现这个简洁的命令对我很有用:
它使用bash通配符
*/
,其中星星后跟斜杠只匹配目录和子目录。xtfmy6hx2#
find . -maxdepth 1 -mindepth 1 -type d
然后
find . -maxdepth 1 -mindepth 1 -type d -exec rm -rf '{}' \;
要添加说明,请执行以下操作:
由于
.
,find
在当前目录中启动,并且仅在-maxdepth
和-mindepth
都设置为1
时才保留在当前目录中。-type d
告诉find
只匹配目录。find
也有一个-exec
标志,可以将其结果传递给另一个函数,在本例中为rm
。'{}' \;
是这些结果的传递方式。See this answer for a more complete explanation of what{}
and\;
dovptzau2j3#
首先,运行:
为了确保输出看起来正常,则:
-type d
只查找目录,然后-d
确保将子目录放在父目录之前。cunj1qz14#
简单的方法:-
uajslkp65#
仅限find命令(支持文件删除)\
-type d只查找目录,然后**-depth确保将子目录放在父目录之前。-delete**删除过滤的文件/文件夹
khbbv19g6#
rm -R $(ls-1-d */|grep..)
f4t66c6m7#
在一行中:
(backquotes)