本文目录导读:

方法1:使用 find 命令(最常用)
#!/bin/bash # 递归删除空目录 find /path/to/directory -type d -empty -delete
参数说明:
-type d:查找目录-empty:匹配空目录-delete:删除找到的空目录
注意: -delete 会先删除最深层的空目录,然后逐级向上删除新变空的目录。
方法2:从最深层开始删除
#!/bin/bash # 从最深层目录开始删除 find /path/to/directory -depth -type d -empty -delete
-depth 确保先处理子目录,再处理父目录。
方法3:使用 rmdir 命令
#!/bin/bash
# 使用 rmdir 删除空目录
find /path/to/directory -type d -empty -exec rmdir {} \;
方法4:多次执行直到没有空目录
#!/bin/bash
target_dir="/path/to/directory"
# 循环删除直到没有空目录
while find "$target_dir" -type d -empty | grep -q .; do
find "$target_dir" -type d -empty -delete
done
方法5:更安全的版本(带日志和确认)
#!/bin/bash
target_dir="${1:-/tmp}" # 默认删除 /tmp 下的空目录
# 函数:递归删除空目录
clean_empty_dirs() {
local dir="$1"
# 先处理子目录
find "$dir" -depth -type d -empty -print -delete 2>/dev/null
# 检查是否还有空目录
if find "$dir" -type d -empty 2>/dev/null | grep -q .; then
echo "仍有空目录,继续清理..."
clean_empty_dirs "$dir"
fi
}
echo "开始清理空目录: $target_dir"
echo "删除的空目录:"
clean_empty_dirs "$target_dir"
echo "清理完成"
完整脚本示例
#!/bin/bash
# 用法: ./clean_empty_dirs.sh [目录路径]
# 设置目标目录
TARGET_DIR="${1:-.}" # 默认为当前目录
# 检查目录是否存在
if [ ! -d "$TARGET_DIR" ]; then
echo "错误: 目录 '$TARGET_DIR' 不存在"
exit 1
fi
# 转换为绝对路径
TARGET_DIR=$(cd "$TARGET_DIR" && pwd)
echo "开始清理空目录: $TARGET_DIR"
echo "------------------------"
# 统计初始空目录数量
initial_count=$(find "$TARGET_DIR" -type d -empty | wc -l)
echo "初始空目录数量: $initial_count"
# 执行删除操作
find "$TARGET_DIR" -depth -type d -empty -delete 2>/dev/null
# 检查结果
final_count=$(find "$TARGET_DIR" -type d -empty 2>/dev/null | wc -l)
deleted_count=$((initial_count - final_count))
echo "已删除空目录: $deleted_count"
echo "剩余空目录: $final_count"
echo "------------------------"
echo "清理完成!"
实际使用示例
# 删除 /tmp 下的空目录 ./clean_empty_dirs.sh /tmp # 删除当前目录下的空目录 ./clean_empty_dirs.sh # 删除指定目录下的空目录 ./clean_empty_dirs.sh /var/log
注意事项
- 权限问题:确保有足够的权限删除目录
- 安全考虑:建议先在测试目录测试
- 已挂载目录:注意不要删除挂载点空目录
- 系统目录:不要随意清理系统关键目录
选择哪种方法取决于你的具体需求,方法1最简单,方法2更彻底(从最深层开始),方法5适合生产环境使用。
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播