当前位置: 首页 > news >正文

【Linux基础命令使用】查找文件、归档管理、计划任务命令详解

查找文件、归档管理、计划任务命令详解

  • 本章学习目标
  • 操作演示
    • find 查找文件
      • 按名称查找文件
      • 忽略大小写查找
      • 按文件类型查找
      • 按权限查找
      • 按大小查找
      • 查找并归档
    • tar 归档文件
      • 打包目录(不压缩)
      • 打包压缩为gzip格式
      • 打包压缩bzip2格式
      • 列出归档内容(不解压)
      • 解压到当前目录
      • 解压到指定目录
      • 解压特定文件
    • zip 压缩文件
      • 压缩单个文件
      • 压缩多个文件
      • 静默模式压缩
      • 递归压缩目录
      • 查看压缩包内容
    • at 一次性计划任务(不常用)
      • 绝对时间执行任务
      • 相对时间执行任务
      • 查看任务队列
      • 查看任务详情
      • 删除任务
    • crontab 定时任务(常用)
      • 编辑当前用户定时任务
      • 列出所有定时任务
      • 删除所有任务
      • 实现复杂时间任务
  • 总结

本章学习目标

  • 查找文件:搜索文件,可以通过名称、文件类型等方式查找文件

  • 归档文件:与win一样,Linux也可以实现创建压缩包的功能,只是格式有一些区别,本文讲解常用的格式

  • 计划任务:可以实现定时执行我们需要执行的命令,实现需求

操作演示

find 查找文件

演示命令功能描述关键选项作用
find /etc -name "passwd"按名称精确查找文件-name:匹配完整文件名
find /var/log -iname "*.LOG"忽略大小写查找-iname:不区分大小写匹配
find /dev -type b按类型查找块设备-type b:筛选块设备文件
find /home -type f -perm 777按权限查找文件-perm:匹配指定权限
find / -size +100M按大小查找大文件-size +n:大于n单位文件
find /var/log -name "*.log" -exec tar -rvf logs.tar {} \;查找并归档文件{}:匹配文件的占位

按名称查找文件

[root@localhost ~]# find /etc -name "passwd"
/etc/passwd
/etc/pam.d/passwd
# 在/etc目录查找所有名为passwd的文件

忽略大小写查找

[root@localhost ~]# find /var/log -iname "*.LOG"
/var/log/boot.log
# 查找/var/log下所有.log文件

按文件类型查找

[root@localhost ~]# find /dev -type b
/dev/sda
/dev/sdb
# 查找/dev下的块设备文件(如磁盘)

按权限查找

[root@localhost ~]# find /home -type f -perm 777
/home/user/public.sh
# 查找权限为777的普通文件(高危权限)

按大小查找

[root@localhost ~]# find / -size +100M
/opt/large_dataset.iso
# 查找全盘大于100MB的文件

查找并归档

[root@localhost ~]# find /var/log -name "*.log" -exec tar -rvf logs.tar {} \;
# 将所有.log文件添加到logs.tar归档

tar 归档文件

创建不同格式的归档文件,可以设置是否压缩

演示命令功能描述关键选项作用
tar -cvf /backup/etc_backup.tar /etc打包目录(不压缩)-c: 创建归档 -f: 指定文件名
tar -zcvf /backup/logs.tar.gz /var/loggzip压缩打包-z: 启用gzip压缩
tar -jcvf /backup/home.tar.bz2 /homebzip2压缩打包-j: 启用bzip2压缩
tar -tvf /backup/etc_backup.tar查看归档内容-t: 列出文件列表
tar -xvf /backup/logs.tar.gz解压到当前目录-x: 解压操作
tar -xvf /backup/home.tar.bz2 -C /restore/解压到指定目录-C: 指定目标目录
tar -xvf /backup/etc_backup.tar etc/passwd解压特定文件需精确匹配归档内路径

打包目录(不压缩)

[root@localhost ~]# tar -cvf /backup/etc_backup.tar /etc
# -c: 创建归档 -v: 显示过程 -f: 指定文件名(/etc目录被打包为etc_backup.tar)

打包压缩为gzip格式

[root@localhost ~]# tar -zcvf /backup/logs.tar.gz /var/log
# -z: 使用gzip压缩,生成.tar.gz归档文件(压缩/var/log目录)

打包压缩bzip2格式

[root@localhost ~]# tar -jcvf /backup/home.tar.bz2 /home
# -j: 使用bzip2压缩,生成.tar.bz2文件(更高压缩率)

列出归档内容(不解压)

[root@localhost ~]# tar -tvf /backup/etc_backup.tar
# -t: 列出归档内文件列表(不实际解压)

解压到当前目录

[root@localhost ~]# tar -xvf /backup/logs.tar.gz
# -x: 解压文件(默认解压到当前目录)

解压到指定目录

[root@localhost ~]# tar -xvf /backup/home.tar.bz2 -C /restore/
# -C: 指定解压目标目录(/restore/)

解压特定文件

[root@localhost ~]# tar -xvf /backup/etc_backup.tar etc/passwd
# 仅解压归档中的etc/passwd文件(需精确路径匹配)

zip 压缩文件

演示命令功能描述关键选项作用
zip config.zip /etc/hostname压缩单个文件默认保留源文件
zip logs.zip /var/log/messages /var/log/secure压缩多个文件空格分隔多个源文件路径
zip -q backup.zip /etc/passwd静默模式压缩-q:不显示压缩过程
zip -r web.zip /var/www/html递归压缩目录-r:必需,否则只压缩空目录
zipinfo web.zip查看压缩包内容显示文件列表、大小、压缩率等

压缩单个文件

[root@localhost ~]# zip config.zip /etc/hostnameadding: etc/hostname (deflated 33%)
# 将 /etc/hostname 压缩为 config.zip(保留原文件)

压缩多个文件

[root@localhost ~]# zip logs.zip /var/log/messages /var/log/secureadding: var/log/messages (deflated 81%)adding: var/log/secure (deflated 73%)
# 同时压缩两个日志文件到 logs.zip

静默模式压缩

[root@localhost ~]# zip -q backup.zip /etc/passwd /etc/group
# -q:不显示压缩过程(适用于脚本自动化)

递归压缩目录

[root@localhost ~]# zip -r web.zip /var/www/htmladding: var/www/html/ (stored 0%)adding: var/www/html/index.html (deflated 45%)
# -r:递归压缩目录内所有内容(必需选项)

查看压缩包内容

[root@localhost ~]# zipinfo web.zipArchive:  web.zipLength   Date    Time    Name0  2025-07-09 14:30   var/www/html/1024  2025-07-09 14:31   var/www/html/index.html
# 列出文件列表、大小、压缩率等详细信息

at 一次性计划任务(不常用)

常用于执行一次性任务

演示命令功能描述关键选项/参数作用
at 15:00 2025-07-10指定绝对时间执行任务日期格式:YYYY-MM-DD HH:MM
at now + 5 minutes指定相对时间执行任务`now + n [minutes
atq查看任务队列显示任务ID、时间、用户
at -c 2查看任务详情-c [任务ID]:输出完整命令和环境变量
atrm 1删除任务atrmat -d 等效

绝对时间执行任务

[root@localhost ~]# at 15:00 2025-07-10
at> /usr/bin/touch /tmp/at_test1.txt
at> <EOT>
job 1 at Thu Jul 10 15:00:00 2025
# 指定绝对时间(2025年7月10日15:00)创建文件

相对时间执行任务

[root@localhost ~]# at now + 5 minutes
at> echo "Task completed at $(date)" > /var/log/at_demo.log
at> <EOT>
job 2 at Tue Jul  9 14:20:00 2025
# 5分钟后记录执行时间到日志文件(`now +` 指定相对时间)

查看任务队列

[root@localhost ~]# atq
1       Thu Jul 10 15:00:00 2025 a root
2       Tue Jul  9 14:20:00 2025 a root
# 列出所有待执行任务(按时间排序)

查看任务详情

[root@localhost ~]# at -c 2
...(输出内容包含环境变量和命令)
echo "Task completed at $(date)" > /var/log/at_demo.log
# 显示任务2的具体命令和环境配置(`-c` 查看完整内容)

删除任务

[root@localhost ~]# atrm 1
[root@localhost ~]# atq
2       Tue Jul  9 14:20:00 2025 a root
# 删除任务1(`atrm` 或 `at -d` 均可)

crontab 定时任务(常用)

演示命令功能描述关键选项/参数作用
crontab -e编辑当前用户的定时任务调用默认编辑器(如vi)配置任务
crontab -l列出当前用户的所有定时任务显示任务列表
crontab -r -i交互式删除所有任务-i:删除前确认

编辑当前用户定时任务

[root@localhost ~]# crontab -e
# 打开vi编辑器,添加以下任务:
* * * * * echo "每分钟测试" >> /tmp/cron_test.log  # 每分钟记录测试信息
0 3 * * * /sbin/reboot                            # 每天凌晨3点重启系统

列出所有定时任务

[root@localhost ~]# crontab -l
* * * * * echo "每分钟测试" >> /tmp/cron_test.log
0 3 * * * /sbin/reboot
# 显示当前用户的所有定时任务

删除所有任务

[root@localhost ~]# crontab -r -i
crontab: really delete root's crontab? y
# -i:交互式确认,避免误删

实现复杂时间任务

[root@localhost ~]# crontab -e
# 添加:
0 8-18/2 * * 1-5 /usr/bin/systemctl status httpd  # 工作日每2小时(8点至18点)检查Apache状态
*/15 * * * * /root/scripts/backup.sh              # 每15分钟执行备份脚本

总结

​ 本文讲解了如何查找、归档文件,介绍了两种归档文件的命令,讲解了两种计划任务的使用,到目前为止已经可以实现在Linux大部分常用的操作,下一章开始进行对Linux命令的查漏补缺,一定要坚持下去啊!

http://www.lryc.cn/news/584504.html

相关文章:

  • 决策树与随机森林Python实践
  • 云原生技术与应用-Docker高级管理--Dockerfile镜像制作
  • STM32之风扇模块(开关控制+PWM调速)
  • 相机:以鼠标点为中心缩放(使用OpenGL+QT开发三维CAD)
  • 动态物体滤除算法
  • 【读书笔记】如何画好架构图:架构思维的三大底层逻辑
  • CTFHub————Web{信息泄露[备份文件下载(vim缓存、.DS_Store)]}
  • UI前端与数字孪生结合案例分享:智慧城市的智慧能源管理系统
  • JAVA面试宝典 -《新潮技术:协程与响应式编程实践》
  • Java 中的多线程实现方式
  • 原创数学建模国赛半自动化辅助排版模板及国赛论文排版格式要求
  • 藏文识别技术的关键挑战与解决方案
  • Win11系统安装Anaconda环境极简教程
  • RV1126平台(Buildroot Linux)+ SunplusIT SPCA2688 USB摄像头 RTSP推流全流程复盘与问题解决记录
  • 反向传播notes
  • 用 ngrok + SSH 实现公网远程控制电脑
  • AI驱动的低代码革命:解构与重塑开发范式
  • Java观察者模式实现方式与测试方法
  • LUMP+NFS架构的Discuz论坛部署
  • 04-ES6
  • RuoYi-Cloud ruoyi-gateway 网关模块
  • 大数据时代UI前端的智能化升级:基于机器学习的用户意图预测
  • 在生信分析中,处理vcf 比较好用的python包推荐
  • 【PTA数据结构 | C语言版】顺序栈的3个操作
  • WebSocket实战:实现实时聊天应用 - 双向通信技术详解
  • Apache
  • AI探索 | 豆包智能助手跟扣子空间(AI办公助手)有什么区别
  • Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
  • ClickHouse 查看正在执行的SQL查询
  • ClickHouse JSON 解析