Redhat8文件查找与打包
接上篇:(四)RHEL系统之Redhat8桌面环境操作、目录树结构以及文件操作管理
任务背景
任务要求
1.掌握 Linux下如何根据需求查找文件
2.熟悉linux下文件打包压缩工具使用
任务分解
1.知道inux下查找文件的相关命令工具有哪些
2.知道inux下打包压缩工具有哪些,有什么特点
3.掌握相关工具使用
一、linux下文件查找命令
1.命令查找
Linux下一切皆文件! which 命令 :找出命令的绝对路径 whereis 命令 :找出命令的路径以及文档手册信息
[huislee@huislee ~]$ which mkdir
/usr/bin/mkdir
[huislee@huislee ~]$ 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 查找路径 选项 关键字
1)根据文件名查找
[huislee@huislee test]$ mkdir file{1..3}
[huislee@huislee test]$ ls
file1 file2 file3
[huislee@huislee test]$ find ./ -name "file1"
./file1
2)根据文件类型查找
[huislee@huislee ~]$ find /dev -type b
/dev/dm-2
/dev/dm-1
/dev/dm-0
/dev/sr0
/dev/nvme0n1p2
/dev/nvme0n1p1
/dev/nvme0n1
[huislee@huislee ~]$
3)根据文件大小查找
[huislee@huislee /]$ find /bin/ -size +1M
/bin/bash
/bin/cpp
/bin/vi
/bin/sqlite3
/bin/nmcli
/bin/dwp
4)根据文件属性(权限,创建者和所属组)
[huislee@huislee ~]$ find . -type f -perm 644
./.bash_logout
./.bash_profile
./.bashrc
用法2:找出来执行命令
根据需求查找出来后执行某个动作(命令)
find 路径 选项 关键字 动作
[huislee@huislee ~]$ find ./test/ -type d -ls
171 0 drwxrwxr-x 5 huislee huislee 45 10月 31 11:39 ./test/
33554599 0 drwxrwxr-x 2 huislee huislee 6 10月 31 11:39 ./test/file1
67155114 0 drwxrwxr-x 2 huislee huislee 6 10月 31 11:39 ./test/file2
100663448 0 drwxrwxr-x 2 huislee huislee 6 10月 31 11:39 ./test/file3
[huislee@huislee ~]$ find ./test/ -type d -ok cp -r {} ./ \;
< cp ... ./test/ > ? y
cp: './test/' 与'./test' 为同一文件
< cp ... ./test/file1 > ? y
< cp ... ./test/file2 > ? y
< cp ... ./test/file3 > ? y
[huislee@huislee ~]$ ls
公共 模板 视频 图片 文档 下载 音乐 桌面 file1 file2 file3 test
[huislee@huislee ~]$
二、Linux下文件压缩工具
1、常见的压缩与解压缩工具
2、工具的用法
① zip工具
压缩:
zip 压缩后的文件 需要压缩的文件
选项: -r 递归压缩,压缩目录
注意:
zip压缩默认压缩后的格式就是.zip;当然也可以加后缀.zip,一般都加上
解压缩: -d 指定解压缩路径
② gzip工具
压缩:
gzip 需要压缩的单个文件
选项: -d 解压缩 -r 递归压缩(目录)
解压缩: gunzip 需要解压的文件
或者
gzip -d 需要解压的文件
gunzip file* 一次解压多个文件,*代表通配符;file*表示以file开头所有文件
③ bzip2工具
压缩: bzip2 需要压缩的文件
选项: -d 解压缩
④ xz工具
选项:
-z 压缩,默认
-d 解压缩 或者unxz
压缩: xz 文件名
解压缩: unxz 文件名 或者xz -d 文件名
三、Linux下文件打包工具
tar 命令:可以将多个文件打包成一个并且压缩,不会改变文件的属性,很常用。
用法:
tar 选项 打包后的文件 需要打包的文件
注意说明:
1. 以上选项前面的横杠"-"可以省略
2. 如果已经将文件压缩打包,那么就不能追加;如果只是打包就可以追加。
3. 参数顺序需要注意,最好把-f参数放到所有参数后面。
4. 当出现以下提示时,加一个大P参数解决。
tar: Removing leading `/' from member names
日期相关指令
1、date命令(重点)
date :打印或者设置当前系统日期和时间
date --help 自己先求帮助
① 打印日期或时间
[huislee@huislee ~]$ date
2020年 10月 31日 星期六 14:13:18 CST
[huislee@huislee ~]$ date +%D
10/31/20
[huislee@huislee ~]$ date +%F
2020-10-31
[huislee@huislee ~]$ date +%Y-%m-%d
2020-10-31
[huislee@huislee ~]$ date +'%Y %m %d'
2020 10 31
[huislee@huislee ~]$ date -d '+3days' +%F
2020-11-03
[huislee@huislee ~]$ date --date='30days' +%F
2020-11-30
[huislee@huislee ~]$ date -d '3days ago' +%F
2020-10-28
② 设置系统日期或时间
选项:-s 设置当前系统时间,只有root权限才能设置,其他只能查看。
date -s 20200523
设置成20100523,这样会把具体时间设置成空00:00:00
date -s "01:01:01 2020-05-2" 这样可以设置全部时间
date -s "01:01:01 20200523" 这样可以设置全部时间
date -s "2020-05-23 01:01:01" 这样可以设置全部时间
date -s "20200523 01:01:01" 这样可以设置全部时间
③ 系统时间同步硬件时间
hwclock :查看并且设置硬件时间
timedatectl命令
选项:
-s, --hctosys set the system time from the RTC
-w, --systohc set the RTC from the system time
-l, --localtime the RTC timescale is Local
举例说明:
[root@huisle ~]# hwclock --hctosys
[root@huisle ~]# hwclock
2019-06-23 18:44:10.377920+08:00
[root@huisle ~]# date
2019年 06月 23日 星期日 18:44:21 CST
[root@huisle ~]# date -s "20221010 12:12:12"
2022年 10月 10日 星期一 12:12:12 CST
[root@huisle ~]# date
2022年 10月 10日 星期一 12:12:14 CST
[root@huisle ~]# hwclock
2019-06-23 18:45:01.368135+08:00
[root@huisle ~]# hwclock --systohc
[root@huislee ~]# hwclock
2022-10-10 12:12:43.179274+08:00
[huislee@huislee ~]$ timedatectl status
Local time: 六 2020-10-31 14:27:52 CST
Universal time: 六 2020-10-31 06:27:52 UTC
RTC time: 六 2020-10-31 06:27:47
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[huislee@huislee ~]$
timedatectl -h 设置和查看系统的时间和日期(设置时区以及开启或关闭ntp服务)
④ 应用案例
有时候我们需要用到当前的系统时间,如何调用?比如以当前系统日期命名创建目录或文件
2020-10-10.log.tar.gz
2020-10-11.log.tar.gz
$():括号里面的命令优先执行 如: date +%F 2019-06-23
创建目录和文件,以当前系统日期命名
[huislee@huislee ~]$ mkdir $(date +%F)
[huislee@huislee ~]$ ls
2020-10-31 公共 模板 视频 图片 文档 下载 音乐 桌面 test
[huislee@huislee ~]$ touch $(date -d '+3days' +%Y%m%d).log
[huislee@huislee ~]$ ls
2020-10-31 20201103.log 公共 模板 视频 图片 文档 下载 音乐 桌面 test
[huislee@huislee ~]$
cal :查看日历
cal 或者 cal -1 表示直接输出当前月份的日历
cal -3 表示输出上一个月+本月+下个月的日历
cal -y 年份 表示输出某一个年份的日历
[huislee@huislee ~]$ cal
十月 2020
日 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
[huislee@huislee ~]$ cal -1
十月 2020
日 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
[huislee@huislee ~]$ cal -3
九月 2020 十月 2020 十一月 2020
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
[huislee@huislee ~]$ cal -y 2020
2020
一月 二月 三月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 1 2 3 4 5 6 7
5 6 7 8 9 10 11 2 3 4 5 6 7 8 8 9 10 11 12 13 14
12 13 14 15 16 17 18 9 10 11 12 13 14 15 15 16 17 18 19 20 21
19 20 21 22 23 24 25 16 17 18 19 20 21 22 22 23 24 25 26 27 28
26 27 28 29 30 31 23 24 25 26 27 28 29 29 30 31
四月 五月 六月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 2 1 2 3 4 5 6
5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13
12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20
19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27
26 27 28 29 30 24 25 26 27 28 29 30 28 29 30
31
七月 八月 九月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 4 1 1 2 3 4 5
5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12
12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19
19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26
26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30
30 31
十月 十一月 十二月
日 一 二 三 四 五 六 日 一 二 三 四 五 六 日 一 二 三 四 五 六
1 2 3 1 2 3 4 5 6 7 1 2 3 4 5
4 5 6 7 8 9 10 8 9 10 11 12 13 14 6 7 8 9 10 11 12
11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19
18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26
25 26 27 28 29 30 31 29 30 27 28 29 30 31