![如何使用bash删除目录中的所有文件夹?](https://linux22.com/image/124426/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8bash%E5%88%A0%E9%99%A4%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
基本上,我想删除所有子文件夹,但保留所有文件完好无损。例如:
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