用一条命令快速查找并管理大文件:结合 find 和 fzf 的实用脚本
最近写了个小脚本,用来快速查找指定目录下的大文件,并且方便地预览和删除。结合了 find
和交互式模糊搜索工具 fzf
,用起来很顺手,分享给大家。
脚本功能
交互式输入查找目录(默认
/mnt/ssd
)输入文件大小阈值(支持
find -size
的格式,比如300M
、1G
,默认300M
)使用
find
查找所有大于指定大小的文件用
fzf
显示结果列表,支持多选预览窗口显示文件的详细信息,包括:
stat
文件状态文件路径
ls -lh
的详细信息(带颜色)文件所在目录内容,方便了解周边文件
绑定快捷键
Ctrl-D
删除选中的文件,并自动刷新列表
脚本代码
bash -c ' read -rp "请输入要查找的大文件目录(默认 /mnt/ssd): " dir dir=${dir:-/mnt/ssd} read -rp "请输入文件大小阈值(find -size 参数,如 300M、1G,默认 300M): " size size=${size:-300M} find "$dir" -type f -size +"$size" | fzf --multi --preview " sh -c '\''printf \"\033[1;33m使用提示:上下键选择,Enter确认多选,Ctrl-D删除选中文件并刷新列表\033[0m\n\n\"; printf \"\033[1;34m--- 文件状态 (stat) ---\033[0m\n\"; stat \"\$1\" 2>/dev/null; printf \"\n\033[1;34m--- 文件路径 ---\033[0m\n%s\n\n\" \"\$1\"; printf \"\033[1;34m--- ls -lh 信息 ---\033[0m\n\"; ls -lh --color=always \"\$1\"; printf \"\n\033[1;34m--- 所在目录内容 (ls -l) ---\033[0m\n\"; dir=\$(dirname \"\$1\"); ls -l --color=always \"\$dir\"'\'' sh {}" --preview-window=right:60%:wrap --bind "ctrl-d:execute-silent(rm -f {+})+reload(find \"$dir\" -type f -size +$size)" '
使用心得
以前查找大文件基本都是用
find
然后手动一个个确认,很麻烦。fzf
的预览功能真的是太强了,能直接看到文件属性和周边目录内容,判断删除更靠谱。绑定了
Ctrl-D
快捷键,直接删文件,避免再跑一遍命令。适合清理服务器或大容量盘上的无用大文件,节省空间。
如果你也有类似需求,可以拿去改改用。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 砂纸の小屋
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果