3月5日作业

代码作业:

#!/bin/bash# 清空目录函数
safe_clear_dir() {local dir="$1"local name="$2"if [ -d "$dir" ]; thenwhile true; doread -p "检测到 $name 目录已存在,请选择操作:
1) 清空目录内容
2) 保留目录内容
请输入选项数字: " choicecase $choice in1)echo "正在清空 $name 目录..."shopt -s dotglobrm -rf "${dir:?}"/* 2>/dev/nullshopt -u dotglobreturn 0;;2)echo "保留现有 $name 目录内容"return 0;;*)echo "无效输入,请重新选择";;esacdoneelsemkdir -p "$dir"echo "已创建 $name 目录"fi
}# 处理目标目录
safe_clear_dir "$HOME/file_dir" "文件存储"
safe_clear_dir "$HOME/dir_dir" "目录存储"# 获取并验证输入路径
while true; doread -p "请输入要处理的路径: " input_pathpath=$(realpath "$input_path" 2>/dev/null)if [ -z "$path" ]; thenecho "错误:路径不能为空!"continuefiif [ ! -e "$path" ]; thenecho "错误:路径不存在!"continuefiif [ ! -d "$path" ]; thenecho "错误:必须输入目录路径!"continuefibreak
done# 初始化计数器
count_file=0
count_dir=0# 文件拷贝操作
process_files() {echo "正在处理普通文件..."while IFS= read -r -d '' file; docp -f "$file" "$HOME/file_dir/"((count_file++))done < <(find "$path" -maxdepth 1 -mindepth 1 -type f -print0 2>/dev/null)echo "正在处理目录文件..."while IFS= read -r -d '' dir; docp -r "$dir" "$HOME/dir_dir/"((count_dir++))done < <(find "$path" -maxdepth 1 -mindepth 1 -type d -print0 2>/dev/null)
}
if process_files;thenecho "操作完成,统计结果:"echo "成功拷贝普通文件: $count_file 个"echo "成功拷贝目录文件: $count_dir 个"echo "文件存储位置: $HOME/file_dir"echo "目录存储位置: $HOME/dir_dir"
fi

创建目录:

处理文件:

删除文件:

文件已清空

删除文件夹:

功能完成。

思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896988.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

达梦数据库关于参数PK_WITH_CLUSTER的改动分析

目录 1、PK_WITH_CLUSTER取值为0 2、PK_WITH_CLUSTER取值为1 达梦数据库的参数PK_WITH_CLUSTER在最近使用过程中发现与前期使用的版本存在差异&#xff0c;特此测试分析一下。具体哪个版本改动的暂未得知。 PK_WITH_CLUSTER&#xff0c;默认值为0&#xff0c;动态会话级参数。…

android11使用gpio口控制led状态灯

目录 一、简介 二、解决方法 A、底层驱动 B、上层调用 C、验证 一、简介 1、需求&#xff1a;这里是用2个gpio口来控制LED灯&#xff0c;开机时默认亮蓝灯&#xff0c;按开机键&#xff0c;休眠亮红灯&#xff0c;唤醒亮蓝灯。 原理图&#xff1a; 这里由于主板上电阻R63…

windows 利用nvm 管理node.js 2025最新版

1.首先在下载nvm 下载链接 2. 下载最新版本的nvm 3. 同意协议 注意&#xff1a;选择安装路径 之后一直下一步即可 可以取消勾选 open with Powershell 勾选后它会自动打开Powershell 这里选用cmd 输入以下命令查看是否安装成功 nvm version 查看已经安装的版本 我之前自…

深入浅出:UniApp 从入门到精通全指南

https://juejin.cn/post/7440119937644101684 uni-app官网 本文是关于 UniApp 从入门到精通的全指南&#xff0c;涵盖基础入门&#xff08;环境搭建、创建项目、项目结构、编写运行&#xff09;、核心概念与进阶知识&#xff08;组件与开发、页面路由与导航、数据绑定与响应式…

MySQL ——数据的增删改查

一、DML语言 1.1 insert插入数据 语法&#xff1a;insert [into] 表名 [字段名] values(值列表)&#xff1b; 插入一行数据 第一种&#xff1a;insert into file1(id,name,age) values (1,‘aa’,11); 第二种&#xff1a;insert into file1 values(1,‘aa’,11); 插入多行数…

【CF记录】贪心——A. Scrambled Scrabble

https://codeforces.com/contest/2045/problem/A 思路&#xff1a; 由于Y有两种选择&#xff0c;NG也是&#xff0c;那我们可以枚举以下情况&#xff1a;选i个Y做辅音&#xff0c;j个NG做辅音 然后贪心选择最长的即可&#xff0c;观察到S最长为5000&#xff0c;即使是也不会…

C语言【指针篇】(四)

前言&#xff1a;正文1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. 二维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使用4.3 两段有趣的代码4.3.1 typedef关键字 5. 函数指针数组6. 转移表 总结 前言&am…

React + TypeScript 实战指南:用类型守护你的组件

TypeScript 为 React 开发带来了强大的类型安全保障&#xff0c;这里解析常见的一些TS写法&#xff1a; 一、组件基础类型 1. 函数组件定义 // 显式声明 Props 类型并标注返回值 interface WelcomeProps {name: string;age?: number; // 可选属性 }const Welcome: React.FC…

【玩转正则表达式】将正则表达式中的分组(group)与替换进行结合使用

在文本处理和数据分析领域&#xff0c;正则表达式&#xff08;Regular Expressions&#xff0c;简称regex&#xff09;是一种功能强大的工具。它不仅能够帮助我们匹配和搜索字符串中的特定模式&#xff0c;还能通过分组&#xff08;Grouping&#xff09;和替换&#xff08;Subs…

Flutter 学习之旅 之 flutter 不使用插件,简单实现一个 Toast 功能

Flutter 学习之旅 之 flutter 不使用插件&#xff0c;简单实现一个 Toast 功能 目录 Flutter 学习之旅 之 flutter 不使用插件&#xff0c;简单实现一个 Toast 功能 一、简单介绍 二、简单介绍 Toast 1. 确保正确配置 navigatorKey 2. 避免重复显示 Toast 3. 确保 Toast …

《OpenCV》——dlib(人脸应用实例)

文章目录 dlib库dlib库——人脸应用实例——表情识别dlib库——人脸应用实例——疲劳检测 dlib库 dlib库的基础用法介绍可以参考这篇文章&#xff1a;https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331&#xff0c;故此这篇文章只介绍dlib的人…

学习日记-250305

阅读论文&#xff1a;Leveraging Pedagogical Theories to Understand Student Learning Process with Graph-based Reasonable Knowledge Tracing ps:代码逻辑最后一点还没理顺&#xff0c;明天继续 4.2 Knowledge Memory & Knowledge Tracing 代码研究&#xff1a; 一般…

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…

【ESP-ADF】在 VSCode 安装 ESP-ADF 注意事项

1.检查网络 如果您在中国大陆安装&#xff0c;请使用魔法上网&#xff0c;避免无法 clone ESP-ADF 仓库。 2.VSCode 安装 ESP-ADF 在 VSCode 左侧活动栏选择 ESP-IDF:explorer&#xff0c;展开 advanced 并点击 Install ESP-ADF 然后会出现选择 ESP-ADF 安装目录。 如果出现…

关于2023新版PyCharm的使用

考虑到大家AI编程的需要&#xff0c;建议大家安装新版Python解释器和新版PyCharm&#xff0c;下载地址都可以官网进行&#xff1a; Python&#xff1a;Download Python | Python.org&#xff08;可以根据需要自行选择&#xff0c;建议选择3.11&#xff0c;保持交流版本一致&am…

轻松部署 Stable Diffusion WebUI 并实现局域网共享访问:解决 Conda Python 版本不为 3.10.6 的难题

这篇博文主要为大家讲解关于sd webui的部署问题&#xff0c;大家有什么不懂的可以随时问我&#xff0c;如果没有及时回复&#xff0c;可联系&#xff1a;1198965922 如果后续大家需要了解怎么用代码调用部署好的webui的接口&#xff0c;可以在评论区留言哦&#xff0c;博主可以…

Leetcode 103: 二叉树的锯齿形层序遍历

Leetcode 103: 二叉树的锯齿形层序遍历 问题描述&#xff1a; 给定一个二叉树&#xff0c;返回其节点值的锯齿形层序遍历&#xff08;即第一层从左到右&#xff0c;第二层从右到左&#xff0c;第三层从左到右&#xff0c;依此类推&#xff09;。 适合面试的解法&#xff1a;广…

Linux中的进程间通信的方式及其使用场景

在 Linux 系统中&#xff0c;进程间通信&#xff08;Inter-Process Communication, IPC&#xff09;是指不同进程之间传递数据、共享信息的机制。Linux 提供了多种进程间通信的方式&#xff0c;每种方式都有不同的特点和使用场景。以下是常见的几种进程间通信方式及其应用场景&…

springBoot集成emqx 实现mqtt消息的发送订阅

介绍 我们可以想象这么一个场景&#xff0c;我们java应用想要采集到电表a的每小时的用电信息&#xff0c;我们怎么拿到电表的数据&#xff1f;一般我们会想 直接 java 后台发送请求给电表&#xff0c;然后让电表返回数据就可以了&#xff0c;事实上&#xff0c;我们java应用发…

vue Table 表格自适应窗口高度,表头固定

当表格内纵向内容过多时&#xff0c;可选择固定表头。 代码很简单&#xff0c;其实就是在table 里面定一个 height 属性即可。 <template><el-table:data"tableData"height"250"borderstyle"width: 100%"><el-table-columnprop…