删除当前目录下小于10G的文件或者文件夹:
bash#!/bin/bash
# 设置目标目录(默认为当前目录)
target_dir="."
cd "$target_dir" || exit 1
# 计算 10G 对应的 KB 值(10 * 1024 * 1024)
threshold_kb=$((10 * 1024 * 1024))
echo "扫描小于 10GB 的文件/文件夹..."
echo "--------------------------------"
# 查找并显示要删除的项目
to_delete=$(du -sk * 2>/dev/null | awk -v limit="$threshold_kb" '$1 < limit {printf "%-10s %s\n", $1/1024/1024"G", $2}')
if [ -z "$to_delete" ]; then
echo "没有找到小于 10GB 的文件/文件夹"
exit 0
fi
echo "以下项目将被删除:"
echo "$to_delete"
echo "--------------------------------"
echo "总项数: $(echo "$to_delete" | wc -l)"
echo "--------------------------------"
read -p "确认删除这些文件/文件夹?[y/N] " confirm
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
echo "操作已取消"
exit 0
fi
# 执行删除操作
echo "开始删除..."
du -sk * 2>/dev/null | awk -v limit="$threshold_kb" '$1 < limit {print $2}' | while IFS= read -r item; do
echo "删除: $item"
sudo rm -rf "$item"
done
echo "--------------------------------"
echo "删除操作完成"
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!