一、压缩和归档 重点知识
压缩文件原理
压缩:
将文件的二进制代码进行压缩,将相邻切相同的0或者1代码减少,如000000压缩写成6个0的写成60,来减少空间。
解压:
在解压的过程中,再去把重复的0补充进去。
打包:
即归档,类似整理文件进入文件夹
压缩:
减少文件占用磁盘空间,网络传输节省网络传输时间。
linux常见的压缩格式:zip、gzip、bzip2、7z、rar、
压缩算法不同,导致压缩比不同
压缩软件 gzip bzip2 xz zip
既能打包又能压缩的软件:tar
二、常用压缩命令:
一、zip
压缩后的文件一般以.zip结尾,可以压缩目录
压缩语法:
zip 压缩名称 压缩的文件或目录
zip dir.zip dir
PS:压缩不删除原文件
实验准备:
生产一个800M的文件,用于压缩测试。
[root@test dir]# dd if=/dev/zero of=test.txt bs=100M count=8
[root@test dir]# du -h test.txt 800M test.txt
举例压缩文件:
[root@test dir]# zip test.zip test.txt adding: test.txt (deflated
100%)
解压缩unzip
[root@test dir]# unzip test.zip -d /tmp/ [root@test dir]# du -h
/tmp/test.txt 800M /tmp/test.txt
二、gzip
举例压缩:
[root@test dir]# ls test.txt [root@test dir]# gzip test.txt
[root@test dir]# ls test.txt.gz
PS:gzip压缩时,原文件消失,生成压缩文件!
gzip压缩包,在解压后,压缩包消失,解压后的文件出现! -d代表解压缩
解压缩的gzip
#gunzip也可以解压缩。
[root@test dir]# ls test.txt.gz [root@test dir]# gzip -d test.txt.gz
[root@test dir]# ls test.txt
三、bzip2
默认情况压缩完成,原文件也消失,压缩文件必须以.bz2结尾!
选项-k:保留源文件
[root@test dir]# bzip2 test.txt [root@test dir]# ls test.txt.bz2
[root@test dir]# bzip2 -d test.txt.bz2 [root@test dir]# ls test.txt
四:xz压缩比更大
压缩删除源文件,-k保留原文件
[root@test dir]# xz test.txt [root@test dir]# ls test.txt.xz
[root@test dir]# du -h test.txt.xz 120K test.txt.xz
解压unxz,-k保留原文件、-c输入到屏幕
[root@test dir]# unxz -k test.txt.xz [root@test dir]# ls test.txt
test.txt.xz
五、tar命令 (重中之重,要考的.)
tar 选项 包名 打包的文件或目录
//切记:一定要注意语法格式,先是打 包后的名字,然后才是要打包的东西
打包压缩同时进行
-z:表示使用gzip压缩方式压缩或者解压缩
-j:表示使用bzip2压缩方式压缩或者解压缩
-c:表示创建 --create
-v:显示详细过程
-f:指定文件,一般后面跟包名
用gzip、bz2、xz方式进行压缩
[root@localhost dir]# tar -zcvf test.tar.gz test.txt //打包压缩.gz格式 test.txt
[root@localhost dir]# tar -jcvf test.tar.bz2 test.txt //打包压缩.bz2格式 test.txt
[root@localhost dir]# tar -jcvf test.tar.xz test.txt //打包压缩.xz格式
解包解压
[root@localhost dir]# tar -zxvf test.tar.gz -C /dir/pack/ test.txt //解包解压test.tar.gz到指定文件夹
[root@localhost dir]# tar -jxvf test.tar.bz2 -C /dir/pack/ test.txt //解包解压test.tar.bz2到指定文件夹
[root@localhost dir]# tar -jxvf test.tar.xz -C /dir/pack/ test.txt //解包解压test.tar.xz到指定文件夹
//其他选项
-t:不解包查看包中的内容
-r:向包中追加文件、不能追加压缩的文件
[root@localhost dir]# tar -rf test.tar test.txt
三、文件搜索
which:用来查找命令的绝对路径
1、命令的别名:alias
查看当前系统中有那些别名
[root@test ~]# alias alias cp=‘cp -i’ alias egrep=‘egrep --color=auto’
alias fgrep=‘fgrep --color=auto’ alias grep=‘grep --color=auto’ …
2、设置别名
1)临时
[root@test ~]# alias ip='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
//执行ip等于vim编辑网卡
2)永久,该文件
[root@test ~]# vim /root/.bashrc
.....................
fi
alias ip='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
3)取消别名
[root@test ~]# unalias ip
3、find
全局性搜索文件
搜索方式:沿着文件的层次结构一次向下搜索,找到符合条件的,打印或者是执行相应的操作。
实例1: 查找/下名称为vim的文件
[root@test ~]# find / -name vim
/usr/bin/vim /usr/share/vim
实例2: 查找/etc下名称为networkmanager的文件。忽略大小写 [root@test ~]# find /etc
-iname networkmanager /etc/selinux/targeted/active/modules/100/networkmanager /etc/NetworkManager
通配符:
*代表任意字符
?代表单个字符
实例1:
查找/etc目录下,所有以.conf结尾的文件
[root@test ~]# find /etc/ -name *.conf
实例2:
查找/etc/目录下,一=以.conf结尾,名称是5个字符的文件
[root@test ~]# find /etc/ -name ?????.conf
按照文件类型查找
[root@test ~]# find /var/ -type l //查找/var/下的链接文件相当与windows快捷方式
/var/run
/var/lock
/var/mail
//验证是否查找的都是软链接
[root@test ~]# ll find /var/ -type l
lrwxrwxrwx. 1 root root 11 8月 29 11:17 /var/lock -> …/run/lock
lrwxrwxrwx. 1 root root 10 8月 29 11:17 /var/mail -> spool/mail
lrwxrwxrwx. 1 root root 6 8月 29 11:17 /var/run -> …/run
按照时间查找(笔试题)
linux文件的三个时间分别是:
[root@test ~]# stat test
文件:“test”
大小:5 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:68839799 硬链接:1
权限:(0644/-rw-r–r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-08-30 14:11:00.304800300 +0800 atime:
最近更改:2020-08-30 14:10:27.748707073 +0800 mtime:
最近改动:2020-08-30 14:10:27.749707076 +0800 ctime:
创建时间:-
以天为单位: 以分钟为单位:
-atime n -amin n
-ctime n -cmin n
-mtime n -mmin n
以n等于7为例:
//搜索最近7天内被访问的所有文件
[root@test ~]# find . -type f -atime -7
//搜索恰好在七天前被访问过的所有文件
[root@test ~]# find . -type f -atime 7
//搜索恰好在超过七天内被访问过的所有文件
[root@test ~]# find . -type f -atime +7
//搜索访问时间超过10分钟的所有文件
[root@test ~]# find . -type f -amin +10