本文目录导读:

在 Linux/macOS 系统中,可以使用以下脚本批量删除空目录:
使用 find 命令(推荐)
Linux/macOS 基本命令
# 删除当前目录及子目录下的所有空目录 find . -type d -empty -delete # 先查看哪些目录会被删除(安全模式) find . -type d -empty -print
更安全的版本(先预览再删除)
# 预览空目录
find /path/to/target -type d -empty > empty_dirs.txt
# 检查确认后删除
cat empty_dirs.txt | xargs -I {} rm -d {}
# 或使用
cat empty_dirs.txt | xargs rmdir
使用 Bash 脚本
递归删除空目录
#!/bin/bash
# 脚本:remove_empty_dirs.sh
target_dir="${1:-.}" # 默认为当前目录
# 反复删除空目录,直到没有空目录为止
while IFS= read -r -d '' dir; do
rmdir "$dir" 2>/dev/null
done < <(find "$target_dir" -type d -empty -print0)
带日志的版本
#!/bin/bash
target_dir="${1:-.}"
log_file="removed_dirs_$(date +%Y%m%d_%H%M%S).log"
echo "开始删除空目录: $(date)" > "$log_file"
count=0
while IFS= read -r -d '' dir; do
if rmdir "$dir" 2>/dev/null; then
echo "删除: $dir" >> "$log_file"
((count++))
fi
done < <(find "$target_dir" -type d -empty -print0)
echo "完成删除 $count 个空目录"
echo "日志已保存到: $log_file"
Windows PowerShell
Windows 系统中删除空目录
# 递归删除所有空目录
Get-ChildItem -Path "C:\your\path" -Recurse -Directory |
Where-Object { $_.GetFileSystemInfos().Count -eq 0 } |
Remove-Item -Verbose
# 带确认的版本
Get-ChildItem -Path "C:\your\path" -Recurse -Directory |
Where-Object { $_.GetFileSystemInfos().Count -eq 0 } |
Select-Object FullName |
Out-File -FilePath "empty_dirs.txt"
# 然后检查文件后手动删除
高级用法
删除特定层级的空目录
# 只删除深度为2的空目录(不递归到更深的子目录) find . -maxdepth 2 -type d -empty -delete
排除特定目录
# 排除 .git 目录 find . -type d -empty -not -path "./.git/*" -delete
删除空目录并保留隐藏目录
# 删除非隐藏空目录,保留隐藏目录 find . -type d -empty -not -name ".*" -delete
安全建议
- 先预览再删除:总是先用
-print或-ls选项查看 - 创建备份:删除前考虑创建目录列表备份
- 从测试目录开始:先在测试目录测试脚本
- 检查删除结果:删除后重新运行命令确认
最安全的方式是先使用:
find /path/to/target -type d -empty -print | less
确认无误后再执行删除操作。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播