当前位置:首页>Linux>实例学习Linux Bash -- 迷你项目1 – 自动化文件管理

实例学习Linux Bash -- 迷你项目1 – 自动化文件管理

  • 2026-09-10 08:55:58
实例学习Linux Bash -- 迷你项目1 – 自动化文件管理

项目目标

这是一个连小型都算不上的迷你项目,项目的目标是你将创建一个简单的文件夹结构,处理文件,并使用通配符有针对性地复制和清理文件。借此来了解Linux的导航与文件管理功能
本项目将重温以下linux的基础命令和技能:
  • 导航(cd, pwd)
  • 文件管理(ls, cp, mv, rm,mkdir,touch,file)
  • 通配符(*、?、[、])

任务描述

在主目录中创建一个名为 bash_project 的文件夹
在其中创建以下结构:
bash_project├── data├── text└── logs
在 data 文件夹中创建五个文件:
  • 将所有.txt文件复制到 text 文件夹
  • 将所有.log文件移动到 logs 文件夹
  • 清晰地列出所有三个文件夹的内容

预期结果

  • text 只包含 .txt 文件
  • logs 只包含 .log 文件
  • data 只包含 info.md

编写脚本前的知识重温

在我们编写我们的脚本来管理文件和文件夹实现上面项目的效果之前,有必要大致了解一下 Linux 系统的文件系统。Linux使用单个目录树,从所谓的根目录(/)开始,所有内容(文件、文件夹、驱动器)都挂载在这个单一根目录下。
重要目录包括:
/home – 用户的个人文件/etc – 系统和配置文件/bin 和 /usr/bin – 程序/var – 可变数据,如日志/tmp – 临时文件
👉记住:Linux没有像Windows那样的盘符(C:、D:)。
了解了Linux的文件系统后,还有两个很重要的概念需要了解,这就是绝对路径与相对路径。
绝对路径:始终以 / 开头,给出完整路径。可以理解为从文件系统的根目录这个位置开始写文件、文件夹的路径。
相对路径:所谓的相对路径是相对于当前目录而言的。
假设你现在再 /home/devops/Documents 这个目录下面,要切换到该目录下的 Documents 目录
# 查看当前工作路径pwd# 使用绝对路径的方法cd /home/devops/Documents# 使用相对路径的方法cd Documents
👉提示:相对路径更短,绝对路径更明确。
上面的例子中,使用 pwd 查看你当前所在的位置,pwd 代表print working directory(打印工作目录),它会显示当前目录的完整路径。
使用 cd(change directory,切换目录)来改变当前目录。cd命令还有下面的用法:
# 进入子目录cd Documents# 进入上级目录cd ..# 直接回到主目录cd# 或cd ~# 进入任意目录cd /etc
想要显示文件和文件夹可以使用ls 命令列出目录内容。
# 基本用法ls# 详细视图ls -l# 显示隐藏文件ls -a# 组合选项ls -la
输出中的重要信息:
  • 文件类型
  • 访问权限
  • 所有者
  • 大小
  • 修改日期
创建文件使用命令touch 而文件夹的命令是mkdir,下面我们来看看这两个命令的例子
# 创建文件夹(mkdir)mkdir project# 一次创建多个文件夹mkdir project1 project2# 一次创建多个文件夹的另外一种写法mkdir project{3..4}# 嵌套文件夹mkdir -p project/bash/resource# 创建文件(touch)touch data.txt
touch 创建一个空文件或更新文件的时间戳。
cp这个命令可以对文件和文件夹进行复制的操作。
# 复制文件cp data.txt logs.txt# 复制文件到目录cp data.txt project1/# 递归复制文件夹cp -r project backup/
👉注意:没有提示的情况下,现有文件会被覆盖。
删除文件和文件夹使用mv命令,这个命令既可用于移动文件和文件夹,也用于重命名文件和文件夹。而且在重命名的时候,可以连同文件的后缀名也一起进行修改(除文本文件外,不建议这么做)。
# 移动文件mv logs.txt project2/# 重命名文件mv project2/logs.txt project2/data.log
删除文件和文件夹的命令是rm。操作的方法和cp、mv等命令的差不多,但是删除属于危险操作,最好是添加询问的安全选项。
# 删除文件rm data.txt# 递归删除文件夹rm -r backup# 安全选项rm -ri project4
👉警告:被删除的文件不会进入回收站。就算你使用的linux发行版本是有桌面的版本,在命令行中使用删除命令的操作,文件都不会进入到回收站,所以删除操作需要谨慎再三确认,建议添加安全选项-i参数。
通配符可以帮助你一次性操作多个文件。常用的通配符有下面的几种
  • * – 匹配任意的字符
  • ? – 匹配恰好一个字符
  • [] – 匹配字符集合,通常用来匹配多个条件,如:[1-9]、[a-z]、[A-Z]
示例:
ls *.txtrm *.logls project[2-3]
file 命令根据内容识别文件类型——而不是扩展名。如下面截图中的例子
file data.txt

最终代码

在bash中,使用nano FileManage.sh命令创建项目的脚本文件,然后输入下面的内容:
cd ~mkdir-p bash_project/{data,text,logs}cd bash_project/datatouch data{1..3}.txt data{4..5}.log info.mdcp *.txt ../text/mv *.log ../logs/echo"data 目录当前的内容"lsecho"text 目录当前的内容"ls ../textecho"logs 目录当前的内容"ls ../logs
输入完成后,按【 Ctrl + X 】的组合键,再输入 【 Y 】→ 【 Enter 】。保存并退出。再在命令行中输入下面的命令:
bash FileManage.sh
一切顺利没用报错的话,可以得到下图中的结果,文件夹和文件都被创建,并放到了预期的位置。
达成学习目标 ✔
完成此项目后,你可以:
规划目录结构
有针对性地组织文件
安全地使用通配符

总结

在本项目的脚本编写过程中,你学到了:
Linux文件系统的结构
如何在其中安全导航
如何创建、复制、移动和删除文件和文件夹
通配符如何加速你的工作
这些基础知识是你在日后使用Bash编写运维自动化脚本的后续操作中最基础的命令知识。


系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。

最新文章

随机文章