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/9 18:47:11

图吧工具箱最新绿色版,内置上百种硬件检测工具

集成上百种专业硬件检测工具&#xff0c;涵盖CPU、显卡、内存、硬盘等全品类性能测试与诊断。软件绿色免安装、无广告无捆绑&#xff0c;适合电脑用户、DIY玩家及维修人员快速排查硬件问题&#xff0c;是免费高效的一站式硬件检测解决方案。 下载地址&#xff1a; 链接&#xf…

作者头像 李华
网站建设 2026/6/7 3:34:55

十大LLM+RAG项目

纵观当前RAG技术发展&#xff0c;我们正从简单的“检索生成”向更精细化的系统设计迈进。多模态理解、图技术融合、长上下文优化等技术方向将共同推动RAG进入新阶段。 一、从聊天机器人到企业级系统&#xff1a;RAG技术的产业升级 当越来越多的大模型应用走出演示环境&#x…

作者头像 李华
网站建设 2026/6/8 15:56:20

<span class=“js_title_inner“>又被内存泄漏搞了一天</span>

作为一名专业的嵌入式菜鸟&#xff0c;在编写嵌入式软件的时候&#xff0c;无可避免地出现内存泄漏的问题&#xff0c;比如&#xff0c;数组越界&#xff0c;空指针&#xff0c;野指针&#xff0c;等等。在遇到内存泄漏的时候&#xff0c;作为菜鸟应该如何定位排查和分析解决呢…

作者头像 李华
网站建设 2026/6/7 6:12:22

draw_tensor2psd_v4.py

import cv2import numpy as npimport mathimport osimport structfrom tqdm import tqdmfrom glob import globPALETTE np.random.randint(0, 255, [255, 3], dtypenp.uint32)# 模型输入尺寸&#xff08;W, H&#xff09;&#xff0c;用于把模型坐标缩放回原图MODEL_IN_W 608…

作者头像 李华
网站建设 2026/6/7 7:31:45

<span class=“js_title_inner“>今年运维这工资是认真的吗?</span>

运维人的至暗时刻已经来临&#xff1f;&#xff01;这真不是危言耸听。最近身边的运维朋友都在说&#xff1a;35岁到了运维天花板、岗位缩减、薪资倒挂……难道运维岗真的没有未来了&#xff1f;其实......不是运维不重要了。而是运维人的技术栈太久没有升级了&#xff01;&…

作者头像 李华
网站建设 2026/6/6 12:45:13

plc教程系列篇(二),plc教程之5大编程语言类型介绍

Plc教程的好坏直接影响到大家的学习&#xff0c;好的plc教程通常具备逻辑清晰等特点。为节省大家寻求plc教程的时间&#xff0c;本文将对大家带来plc教程之plc编程语言类型详解。如果你正缺少一份好的plc教程&#xff0c;不妨看看本文哦。 PLC的用户程序&#xff0c;是设计人员…

作者头像 李华