news 2026/6/9 23:16:15

实现交互式选择目录并压缩

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实现交互式选择目录并压缩
#!/bin/bash# 交互式目录压缩脚本# 检查是否提供了目录参数if[$#-eq0];thenecho"用法:$0<目录路径> 或直接运行$0然后输入目录"echo-n"请输入要处理的目录路径(回车使用当前目录): "readinput_dirif[-z"$input_dir"];thenDIR="."elseDIR="$input_dir"fielseDIR="$1"fi# 检查目录是否存在if[!-d"$DIR"];thenecho"错误: 目录 '$DIR' 不存在"exit1fiecho"正在扫描目录:$DIR"echo""# 获取目录下的所有项(排除 . 和 ..)items=()index=1echo"请选择要压缩的目录:"echo"0. 压缩整个当前目录 ($(basename "$(realpath"$DIR")"))" # 遍历目录,只显示目录 for item in "$DIR"/*; do if [ -d "$item" ]; then items+=("$item") echo "$index.$(basename"$item")"((index++))fi done echo ""echo-n"请选择编号 (0-$((index-1))): "readchoice# 验证输入if![["$choice"=~^[0-9]+$]]||["$choice"-lt0]||["$choice"-ge"$index"];thenecho"错误: 无效的选择"exit1fi# 获取要压缩的目录名if["$choice"-eq0];thentarget_dir="."target_name="$(basename "$(realpath"$DIR")")" else target_dir="${items[$((choice-1))]}" target_name="$(basename"$target_dir")" fi # 生成压缩文件名(添加时间戳避免重复) timestamp=$(date+"%Y%m%d_%H%M%S")archive_name="${target_name}_${timestamp}.tar.gz" echo ""echo"正在压缩:$target_name->$archive_name"# 执行压缩命令if["$choice"-eq0];then# 压缩整个目录cd"$DIR"&&tar-czf"../$archive_name".if[$?-eq0];thenecho"压缩完成:$(realpath"../$archive_name")"elseecho"压缩失败"exit1fielse# 压缩选中的子目录cd"$(dirname"$target_dir")"&&tar-czf"$archive_name""$target_name"if[$?-eq0];thenecho"压缩完成:$(realpath"$archive_name")"elseecho"压缩失败"exit1fifi

将上面的脚本保存为 compress.sh
添加执行权限:

chmod+x compress.sh

运行脚本:

# 方式1:直接运行,然后输入目录./compress.sh
# 方式2:指定目录运行./compress.sh /data/directory

脚本功能说明:
交互式选择:显示目录下的所有子目录,让用户通过数字选择
多种使用方式:
不带参数运行:可以输入目录路径或使用当前目录
带参数运行:直接处理指定目录
选项包含:
选项0:压缩整个当前目录
其他选项:压缩选中的子目录
自动命名:使用"目录名_时间戳.tar.gz"格式,避免文件名冲突
错误处理:检查目录是否存在,验证用户输入是否有效

运行流程:

$ ./compress.sh /data/documents

正在扫描目录: /data/documents
请选择要压缩的目录:
0. 压缩整个当前目录 (documents)

  1. projects
  2. reports
  3. images
    请选择编号 (0-3): 1
    正在压缩: projects -> projects_20231215_143022.tar.gz
    压缩完成: /data/projects_20231215_143022.tar.gz
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 9:24:42

<span class=“js_title_inner“>jQuery 4.0 突发!沉寂十年,这位“前端祖师爷”终于跟 IE 说了再见</span>

2026 年 1 月 17 日&#xff0c;在距离初代版本发布整整 20 年后&#xff0c;jQuery 团队正式发布了 jQuery 4.0.0。这是一次跨越十年的大版本更新。对于许多新生代前端开发者来说&#xff0c;$ 符号可能只是教科书里的历史遗迹&#xff1b;但对于经历过“浏览器兼容性地狱”的…

作者头像 李华
网站建设 2026/6/10 9:40:27

<span class=“js_title_inner“>不负春日不负卿,24年Q1总结</span>

有些事情&#xff0c;经历过才懂难得。有些朋友&#xff0c;遇见了才识真情。有些决定&#xff0c;拍板了才知对错。那么在没有经历时如何了然懂事&#xff0c;在不识真情时如何相知相交&#xff0c;在不辨对错时如何勇于决策&#xff1f;我没有答案。我们总是在教育和被教育中…

作者头像 李华
网站建设 2026/6/9 23:30:19

企业需要这位AI生产力总监而非首席AI官

关于谁应该负责确保企业充分利用生成式AI&#xff0c;存在很多争议。一些专家认为CIO应该监督这一关键角色&#xff0c;而其他人则认为这一责任应该由首席数据官承担。除了这些现有角色之外&#xff0c;其他专家支持首席AI官&#xff08;CAIO&#xff09;这一C级高管新成员&…

作者头像 李华
网站建设 2026/6/10 9:38:38

<span class=“js_title_inner“>iMeta | 2025年优秀青年编委</span>

iMeta 2025年优秀青年编委 自创刊以来&#xff0c;iMeta 期刊致力于打造全球综合领域顶尖交流平台。2025年6月影响因子33.2&#xff0c;中科院分区生物学1区Top&#xff0c;位列全球SCI期刊前千分之三(65/22249)。这一成绩的取得&#xff0c;离不开广大编委&#xff0c;特别是青…

作者头像 李华
网站建设 2026/6/10 9:39:07

RPA 架构下的企微非官方 API:外部群主动调用的技术实现与优化

QiWe开放平台 个人名片 API驱动企微自动化&#xff0c;让开发更高效 核心能力&#xff1a;为开发者提供标准化接口、快速集成工具&#xff0c;助力产品高效拓展功能场景 官方站点&#xff1a;https://www.qiweapi.com 团队定位&#xff1a;专注企微API生态的技术服务团队 对接…

作者头像 李华