如何查找所有Debug文件夹并仅删除其内容而非文件夹本身?
清空所有Debug文件夹内容但保留文件夹本身
方法一:基础清空(不含隐藏文件)
用find定位所有Debug目录,然后删除其中的非隐藏内容:
find ./ -type d -name "Debug" -exec sh -c 'rm -rf "$0"/*' {} \;
这里"$0"指代找到的每个Debug文件夹,*匹配该目录下所有非隐藏的文件和子目录,rm -rf会强制删除这些内容,但不会动Debug文件夹本身。
方法二:清空所有内容(含隐藏文件)
如果需要连隐藏文件/目录一起删,用这个命令:
find ./ -type d -name "Debug" -exec sh -c 'cd "$0" && rm -rf .[^.]* *' {} \;
cd "$0"先进入目标Debug目录.^.]*匹配所有隐藏内容(排除.和..这两个特殊目录)*匹配非隐藏内容,两者结合就能清空所有内容
方法三:GNU find简化写法(Linux系统适用)
如果你的系统用的是GNU find(大部分Linux发行版都是),可以用-execdir更简洁:
find ./ -type d -name "Debug" -execdir rm -rf -- * .[^.]* \;
-execdir会自动进入找到的Debug目录执行命令,所以直接用通配符就能匹配目录内的所有内容。
安全提示
执行删除命令前,建议先把rm -rf换成echo预览要删除的内容,确认没问题再执行:
find ./ -type d -name "Debug" -exec sh -c 'echo "$0"/*' {} \;
内容的提问来源于stack exchange,提问作者drogers
相关产品推荐
相关产品推荐

