Clean — Rust 文件清理工具
Usage: fast-clean [OPTIONS] -d <DIR>
Options:
-d <DIR> 目标文件夹
--fd <FILTER_DIR> 过滤的文件夹
--ext <FILE_EXT> 过滤的扩展名
--day <DAY> 过滤的天数(超过此天数才被删除)
--size <SIZE> 过滤大小(超过此大小才被删除)
--skip_dir 是否删除空文件夹
--is_test 是否是测试
-h, --help Print help
使用示例
清理下载文件夹
我们想要清理下载文件夹,但是内部几个文件夹不想删除,并且只想要删除三天前的文件
#!/usr/bin/env bash
########################################
# 固定业务参数
########################################
BASE_DIR="/home/freeman/Downloads"
FILTER_DIRS=(
"i4ToolsDownloads"
"wps"
)
FILE_EXTS=(
"png"
)
DAY="3"
SIZE=""
########################################
# 组装参数数组
########################################
ARGS=(-d "")
for; do
ARGS+=(--fd "")
done
for; do
ARGS+=(--ext "")
done
if ; then
ARGS+=(--day "")
fi
if ; then
ARGS+=(--size "")
fi
########################################
# 第一次调用
########################################
RET=
if ; then
elif ; then
fi
########################################
# 用户确认
########################################
########################################
# 第二次调用(真实删除)
########################################
删除指定格式图片
删除图片文件夹,想要指定删除png格式,但是也有几个文件夹不想删除
#!/usr/bin/env bash
########################################
# 固定业务参数
########################################
BASE_DIR="/home/freeman/Private/Pictures"
FILTER_DIRS=(
"Photo-In-Github"
"Important"
)
FILE_EXTS=()
DAY="3"
SIZE=""
########################################
# 组装参数数组
########################################
ARGS=(-d "")
for; do
ARGS+=(--fd "")
done
for; do
ARGS+=(--ext "")
done
if ; then
ARGS+=(--day "")
fi
if ; then
ARGS+=(--size "")
fi
########################################
# 第一次调用
########################################
RET=
if ; then
elif ; then
fi
########################################
# 用户确认
########################################
########################################
# 第二次调用(真实删除)
########################################
更新日志
V1.2
- 优化退出逻辑,添加退出码,帮助使用shell二次封装
- 完善Cargo.toml
V1.1
- 使用策略模式优化过滤逻辑
- 支持多文件拓展名过滤
- 添加is_test参数,在run函数中可以直接构造MockRemover
- 支持 dry-run 模式,通过is_test(默认true)来判断是否执行
- 文件大小单位支持,
V1.0
- 支持递归遍历目录
- 支持按文件扩展名过滤
- 支持按文件大小过滤(删除超过指定大小的文件)
- 支持按文件修改时间过滤(超过 N 天)
- 支持跳过指定目录
- 支持是否删除目录
- 支持 Mock 测试(不会真实删除文件)
- 完整黑盒测试覆盖所有参数组合