RHEL8.0快速入门系列笔记–文件查找和打包压缩工具使用(五)
本节内容将为大家介绍一下Linux下如何根据需求查找文件和打包压缩文件的使用。
一、Linux下文件查找的相关命令
1、命令查找
Linux下一切接文件!
which命令:找出命令的绝对路径
whereis命令:找出命令的路径以及文档手册信息
[root@redhat ~]# which mkdir
/usr/bin/mkdir
[root@rhel8 ~]# whereis mkdir
mkdir: /usr/bin/mkdir /usr/share/man/man1/mkdir.1.gz /usr/share/man/man1p/mkdir.1p.gz /usr/share/man/man2/mkdir.2.gz /usr/share/man/man3p/mkdir.3p.gz
2、文件查找(find)
find命令:精确查找,磁盘搜索,IO读写,cpu开销大
用法1:找出来输出到屏幕
根据需求查找出来直接输出到屏幕
find 查找路径 选项 关键字
常规选项 | 含义 | 备注 |
---|---|---|
-name | 按照文件名查找文件 | |
-iname | 按照文件名忽略大小写查找 | |
-size | 按照文件大小查找 | +1M大于1M -M小于1M 1M等于1M |
-type | 按照文件类型来查找 | |
-mtime | 按照文件修改时间来查找 | -n指n天以内, +n指n天以前,n第n天 |
-atime | 按照文件访问时间来查找文件 | |
-ctime | 按照文件创建时间来查找文件 | |
-perm | 按照文件权限来查找文件 |
用法2:找出来执行命令
根据需求查找出来后执行某个动作(命令)
find 路径 选项 关键字 动作
常见动作 | 说明 |
---|---|
-exec | 对查找到的文件直接执行该参数后的shell命令 |
-ok | 对查找到的文件查询式执行该参数后的 shell命令 |
-delete | 删除查找到的文件 |
-ls | 列出查找到的文件 |
打印出查找到的文件(默认选项) |
举例说明
语法结构:
注意:
1.-exec或者-ok后面写完命令必须以空格、反斜杠、分号结尾( \;)
2.{}表示find命令所找出来的内容
[root@redhat ~]# find /tmp/test/ -type f -exec cp {} /tmp \;
二、Linux下文件压缩工具
1、常见的压缩与解压缩工具
压缩工具 | 说明 | 解压工具 |
---|---|---|
zip | 兼容类unix与windows,可以压缩多个文件或目录 | unzip |
gzip | 压缩单个文件,压缩率相对低,cpu开销先对低 | gunzip |
bzip2 | 压缩单个文件,压缩率相对高,cpu开销高 | bunzip2 |
xz | 压缩单个文件,压缩率高,压缩时间相对长,解缩速度快,cpu开销高 | unzx |
2、工具用法
[1] zip工具
压缩:
zip 压缩后的文件 需要压缩的文件
选项:
-r 递归压缩,压缩目录
注意:zip压缩默认压缩后的格式为.zip;当然也可以加后缀.zip,一般都加
解压缩:
-d 指定解压路径
unzip 需解压的文件 -d 指定解压的路径
[2] gzip工具
压缩:
gzip 需要压缩的单个文件
选项:
-d 解压缩
-r 递归压缩(目录)
解压缩:
gunzip 需要解压的文件 或者 gzip -d 需要解压的文件
gunzip file* 一次解压多个文件,*代表通配符;file*表示以file开头的所有文件。
[3] bzip2工具
压缩:
bzip2 需要压缩的文件
选项:
-d 解压缩
[4] xz工具
选项:
-z 压缩,默认
-d 解压缩
压缩:
xz 文件名
解压缩:
unxz 文件名 或 xz -d 文件名
3、Linux下文件打包工具(tar)
tar工具解压后不会改变文件信息
tar命令:可以将多个文件打包成一个并且压缩,很常用
用法:
tar 选项 打包后的文件 需要打包的文件
常用选项 | 说明 |
---|---|
-c | 创建tar包(打包) |
-z | 调用gzip工具压缩 |
-j | 调用bzip2工具压缩 |
-J | 调用xz工具压缩 |
-v | 显示详细信息 |
-f | 指定包名 |
-x | 解压 |
-C | 指定解压到哪个目录 |
-t | 列出查看tar包内容 |
-r | 往tar包里追加文件 |
注意说明
1.以上选项前面的横杠“-”可以省略
2.如果已经将文件压缩打包,那么就不能追加;如果只是打包就可以追加
3.参数顺序需要注意,最好把-f参数放在所有参数的后面
4.当出现一下提示,加一个大P参数解决。
tar:Removing leading '/ ' from menber names
扩展补充
日期相关指令
1、date命令(重点)
date:打印或者设置当前系统日期和实践
date --help 通过帮助命令查看
[1] 打印日期或实践
[root@rhel8 ~]# date
2020年 02月 03日 星期一 18:18:27 CST
[root@rhel8 ~]# date +%D
02/03/20
[root@rhel8 ~]# date +%F
2020-02-03
[root@rhel8 ~]# date +%Y-%m-%d
2020-02-03
[root@rhel8 ~]# date +'%Y %m %d' 根据自定义格式打印日期
2020 02 03
root@rhel8 ~]# date -d '+3day' +%F 打印3天后的日期
2020-02-06
[2] 设置系统日期或时间
选项-s 设置当前系统时间,只有root权限才能设置,其他智能查看。
date -s 20200523 设置成20200523,这样会把具体时间设置成空00:00:00
date -s '2020-02-23 01:01:01' 这样可以设置全部时间
[3] 系统时间同步硬件时间
hwclock:查看并且设置硬件时间
选项:
-s, --hctosys set the system time from the RTC
-w:, --systohc set the RTC from from the system time
-l, --localtime the RTC timescale is Local
应用实例
创建目录,以当前系统日期命令.log
mkdir $(date +%F)
2、timedatectl
[root@rhel8 ~]# timedatectl
Local time: 一 2020-02-03 19:20:47 CST
Universal time: 一 2020-02-03 11:20:47 UTC
RTC time: 一 2020-02-03 11:20:48
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[root@rhel8 ~]# timedatectl status 查看系统时间和硬件时间状态
[root@rhel8 ~]# timedatectl set-ntp no 关闭ntp服务
[root@rhel8 ~]# timedatectl set-time 2020-10-10 设置硬件时间和系统时间
[root@rhel8 ~]# timedatectl list-timeznes 列出可设置的时区
[root@rhel8 ~]# timedatectl set-timezone 时区 设置时区
[root@rhel8 ~]# timedatectl set-ntp yes
[root@rhel8 ~]# chronyc makestep 同步ntp时间
3、cal命令(了解)
cal:查看日历
cal 或者 cal -l 表示直接输出当前月份的日历
cal -3 表示输出上一个月+本月+下个月的日历
cal -y 年份 表示输出一个年份的日历