Bashful files 库完整指南:文件和目录操作一步到位,代码量直接减半

Bashful files 库完整指南:文件和目录操作一步到位,代码量直接减半
Bashful files 库完整指南文件和目录操作一步到位代码量直接减半【免费下载链接】bashfulA collection of modules to simplify writing bash scripts.项目地址: https://gitcode.com/gh_mirrors/ba/bashfulBashful files 库即 bin/bashful-files是开源项目Bashful中的文件处理库专为 bash 脚本提供开箱即用的文件与目录操作函数计算绝对路径/相对路径、提取扩展名、遍历目录、拷贝/移动/删除/建链、自动清理临时文件、带时间戳备份等 19 个函数让你的 bash 脚本文件操作代码量直接减半新手也能快速写出健壮的脚本 ️为什么需要 Bashful 文件处理库写 bash 脚本时文件操作往往是痛点用纯 bash 计算两个路径的相对路径代码又长又容易出 bug处理file.tar.gz这类多级扩展名需要反复写字符串切割临时文件用完忘了删磁盘慢慢被占满cp/mv覆盖文件前没有确认误删风险高Bashful 用模块化库的方式解决了这些问题它把常用能力封装成独立库文档、执行、输入、消息、模式、配置、终端、工具其中bashful-files 就是负责文件与目录操作的主力库一行source即可引入。快速安装 Bashful 文件操作库仓库地址如需克隆git clone https://gitcode.com/gh_mirrors/ba/bashful拿到代码后有两种使用方式方式一全局安装推荐进入项目根目录执行make install见 Makefile会把脚本装到/usr/local/bin之后在任意脚本中source bashful-files即可。方式二零安装直接引用source /path/to/bashful/bin/bashful-files 小贴士如果你只需要 files 库单独 source 这一个文件就行想要完整能力含交互、日志等可以 source bin/bashful 一次性加载全部 8 个库。bashful-files 核心函数清单 完整源码bin/bashful-files约 560 行每个函数都带内嵌文档函数功能一句话说明abspath解析含.、..、~的路径得到绝对路径relpath计算两点间的相对路径对标 Pythonos.path.relpathcommonpath求多个路径的公共前缀目录commontail求多个路径的公共尾部extname取扩展名自动识别.tar.gz等多级扩展filename取文件名默认剥离扩展名increment为已存在文件生成下一个可用名name (1)、name (2)…listdir列出目录第一层内容兼容find选项files递归列出所有文件自动跳过隐藏文件copy/move/remove带交互确认与详细输出模式的cp/mv/rmlink/linkrel创建符号链接linkrel自动生成相对链接stow复制目录树普通文件改为相对链接tempfile/tempdir创建并自动登记临时文件/目录cleanup脚本退出时自动清理登记的临时文件truncate删除指向目标之外的冗余副本文件backup按时间戳把文件备份到指定目录路径处理三件套abspath / relpath / commonpath这是 files 库最省代码的部分。以relpath为例源码注释里给出了直观示例relpath /home/user /home/user/bin # bin relpath /home/user/bin /home/user # .. relpath /foo/bar /baz # ../../baz它内部通过abspath归一化路径再用commonpath求公共前缀最后拼出../序列——这套逻辑自己用纯 bash 写至少要 30 行而这里一个函数调用就搞定。 典型组合用linkrel建软链接时会自动调用relpath链接不会因为项目整体移动而失效。文件名与扩展名extname 和 filename 的正确打开方式extname的亮点是多级扩展名识别extname foo.tar.gz # .tar.gz 自动识别 tar.gz extname -n1 foo.tar.gz # .gz 指定只取一层 extname -n2 foo.tar.gz # .tar.gz配套的filename则提取不带扩展名的文件名filename /path/to/file.tar.gz返回file。备份、重命名、生成下载名等场景都会用到。文件遍历与去重命名listdir、files、incrementlistdir DIR只列目录第一层透传find选项例如listdir /tmp -name *.logfiles DIR递归列出文件含符号链接自动排除隐藏文件increment 文件名文件已存在时自动加序号避免覆盖increment report.txt # report.txt 不存在 → report.txt # 存在一次 → report.txt (1) # 存在两次 → report.txt (2)安全文件操作copy / move / link / remove这四个函数分别是cp、mv、ln、rm的增强版共同点是尊重交互与详细模式配合INTERACTIVE1会先弹出确认提示防止误覆盖配合VERBOSE1会打印实际执行的命令方便排查支持$SUDO需要权限时自动提升比如remove等价于rm -r但默认会询问确认copy等价于cp -Tr目录拷贝时目标更直观。临时文件自动管理tempfile cleanup脚本里创建临时文件最怕忘了删。files 库的tempfile/tempdir会调用mktemp创建文件并写入$TEMPFILE/$TEMPDIR登记到CLEANUP_FILES数组注册trap cleanup INT TERM EXIT——脚本无论正常退出还是被 CtrlC 中断自动清理tempdir # $TEMPDIR 现在是干净可用的目录退出后自动删除进阶技巧backup 与 truncatebackup PATH [DIRECTORY]把文件复制到$TIMESTAMP命名的时间戳目录中改配置前先备份一步到位truncate PREFIX SUFFIX [排除前缀...]假设file.txt - file-c.txt是指向file-a.txt/file-b.txt这类副本之一的软链接它能删掉未指向的冗余副本适合做版本文件整理stow SRC [DST]按原目录结构在目标处重建目录树文件全部用相对链接指回源文件——配置分发神器查看内置帮助bashful-files helpBashful 的文档就内嵌在每个函数的源码注释里由 bin/bashful-doc 的doc库提取。直接运行bashful-files help # 查看全部文档 bashful-files help relpath # 查看指定函数每个函数的文档块都包含 Usage 和 Usage examples比翻源码快得多。项目结构与延伸阅读 关键文件一览bin/bashful-files —— files 库全部实现bin/bashful —— 聚合入口加载全部 8 个库bin/bashful-modes —— 交互/详细模式设置files 库的确认功能依赖它Makefile —— 一键安装脚本README.mkd —— 项目总览share/man/man1/bashful.1 —— man 手册页share/man/man1/shdoc.1 —— 文档提取工具手册除 files 外项目还有bashful-utils杂项工具、bashful-input用户输入、bashful-messages消息通知等库都可以按需单独source按需组合正是 Bashful 的设计哲学。总结Bashful files 库用 19 个精炼函数覆盖了 bash 脚本中 90% 的文件与目录操作场景路径计算abspath/relpath/commonpath省去几十行纯 bash 字符串处理安全操作copy/move/remove自带确认与日志降低误操作风险临时文件tempfile/cleanup注册即自动清理杜绝残留实用加分项backup/truncate/stow/increment直击脚本高频痛点一行source bashful-files文件操作一步到位——这就是它让代码量减半的秘密 ✨【免费下载链接】bashfulA collection of modules to simplify writing bash scripts.项目地址: https://gitcode.com/gh_mirrors/ba/bashful创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻