diff --git a/script/bigfiles.sh b/script/bigfiles.sh new file mode 100644 index 0000000..31f3661 --- /dev/null +++ b/script/bigfiles.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# 检查是否输入了目录参数,如果没有,默认使用当前目录 +TARGET_DIR=${1:-"."} + +echo "--- 正在扫描目录: $TARGET_DIR ---" +echo "--- 正在查找最大的 10 个文件/文件夹 ---" +echo "----------------------------------------" + +# 执行查找逻辑 +# -d 1: 只查看当前目录层级(不展开子目录的所有细碎文件) +# -h: 以人类可读格式显示 (K, M, G) +# sort -rh: 按人类可读的数字反向排序 (需要支持 -h 的 sort,Mac/Linux 通用) +# head -n 10: 取前 10 名 + +if [[ "$OSTYPE" == "darwin"* ]]; then + # Mac (BSD 版本的 du 略有不同) + du -sh "$TARGET_DIR"/* | sort -rh | head -n 10 +else + # Linux (GNU 版本) + du -sh "$TARGET_DIR"/* --max-depth=1 2>/dev/null | sort -rh | head -n 10 +fi + +echo "----------------------------------------" +echo "扫描完成。"