news 2026/5/23 18:05: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/5/13 12:34:55

元气AI助手全攻略:国产智能Bot的颠覆式体验与实战技巧

前言 在当今快节奏的数字时代&#xff0c;AI助手已成为提升效率的必备工具。本文将全面介绍元气AI助手这一国产智能解决方案&#xff0c;从基础功能到高阶应用&#xff0c;帮助用户彻底掌握这款被誉为"Claw国产平替"的强大工具。 一、认识元气AI&#xff1a;不只是另…

作者头像 李华
网站建设 2026/5/7 18:30:39

数字员工与AI销冠系统是什么?对企业意味着哪些转型机遇?

数字员工通过自动化和智能管理&#xff0c;为企业优化业务流程、降低成本和提升效率开辟了新路径。以AI销冠系统为基础&#xff0c;数字员工能够高效处理大量日常任务&#xff0c;减少人工操作带来的时间损耗。在客户联络环节&#xff0c;数字员工不仅能够进行准确的客户信息收…

作者头像 李华
网站建设 2026/5/10 21:52:17

<span class=“js_title_inner“>AI那些趣事系列115:一文读懂 AI Agents 与 Agentic AI:从 “单兵作战” 到 “团队协作” 的智能进化</span>

导读&#xff1a;本文是 “数据拾光者” 专栏的第一百一十五篇文章&#xff0c;这个系列聚焦自然语言处理和大模型相关实践。今天主要是关于AI Agents与Agentic AI的学习笔记。欢迎转载&#xff0c;转载请注明出处以及链接&#xff0c;更多关于自然语言处理、推荐系统优质内容请…

作者头像 李华
网站建设 2026/5/7 6:40:48

SmarterMail修复CVSS 9.3分关键远程代码执行漏洞

SmarterTools已修复SmarterMail邮件软件中的两个新安全漏洞&#xff0c;其中包括一个可能导致任意代码执行的关键安全缺陷。该漏洞编号为CVE-2026-24423&#xff0c;CVSS评分高达9.3分&#xff08;满分10分&#xff09;。根据CVE.org对该漏洞的描述&#xff1a;"SmarterTo…

作者头像 李华