如何使用bash删除目录中的所有文件夹?

如何使用bash删除目录中的所有文件夹?

基本上,我想删除所有子文件夹,但保留所有文件完好无损。例如:

Folder1/
    randomStuff/
         nope.txt
    installer.jar
    build.sh

我希望删除 randomStuff 及其文件,但保持 installer.jar 和 build.sh 完好无损。

答案1

使用以下事实:以斜杠结尾的文件名始终引用目录,而不是常规文件。

命令

rm -r -- ./*/

将完成你所描述的。

答案2

尝试这个:

find Folder1/* -type d -exec rm -rf {} +

这将搜索该目录中的文件夹并对rm -rf找到的每个文件夹运行命令。

答案3

我使用 awk 命令来实现相同的目的。


ls -ltr | awk '$1 ~ "^dr"{print "rm -rvf" " " $9}’ | sh

相关内容