在 Linux 命令行中可以 -无需提示- 递归删除文件(类似rm -r [path]
),但保留下的目录[path]
?
编辑: 对于那些感兴趣的人,我使用了下面 Paul 的回答来构建这个方便的脚本,供我的 Makefile 中使用(将 $(DIRS) 替换为要清理的路径 - 例如 bin 和 build 目录):
clean:
@if [ $$(find bin -type f | wc -l) -gt 0 ]; \
then { \
echo "The following will be deleted:"; \
echo "------------------------------"; \
find $(DIRS) -type f; \
echo "------------------------------"; \
read -p "Continue (y/n)? " -n 1 -r CONTINUE; \
echo; \
}; \
else echo "No files to delete."; \
fi; \
\
if [[ $$CONTINUE =~ ^[Yy]$$ ]]; \
then find $(DIRS) -type f -delete; \
fi;
答案1
是的,你可以使用find
:
find [path] -type f -delete
先运行它而不删除它以确保它针对正确的文件。 type f
意味着只查找文件,而不是目录。