(五)RHEL系统之Redhat8文件查找与打包

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值