文件查找和压缩
文件查找
1、locate
这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项:
- locate
-i //查找文件的时候不区分大小写 比如:locate –i passwd
-n //只显示查找结果的前N行 比如:locate -n 5 passwd
2、find
-
find在不指定查找目录的情况下是对整个系统进行遍历查找
-
使用格式 :find [指定查找目录] [查找规则] [查找完后执行的action]
-
[指定查找目录]例如:
[root@centos7 ~]#find /etc /tmp /root -name passwd /etc/passwd /etc/pam.d/passwd
注意:目录之间要用空格分开
- [查找规则]
(1)根据文件名查找
-name //根据文件名查找(精确查找)
-iname //根据文件名查找,但是不区分大小写
文件名通配的知识
*表示 通配任意的字符
?表示 通配任意的单个字符[ ] 表示 通配括号里面的任意一个字符
(2)根据文件所属用户和组来查找文件
-user //根据属主来查找文件
-group //根据属组来查找文件
(3)根据uid 和 gid来查找用户
find /tmp -uid 500 //查找uid是500 的文件
find /tmp -gid 1000 // 查找gid是1000的文件
(4)-a and -o and –not的使用
-a 连接两个不同的条件(两个条件必须同时满足)
-o 连接两个不同的条件(两个条件满足其一即可)-not 对条件取反的
(5)根据文件时间戳的相关属性来查找文件
我们可以使用stat命令来查看一个文件的时间信息 如下:
-atime-mtime-ctime-amin-mmin-cmin
所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟
find /tmp –atime +5 //表示查找在五天内没有访问过的文件
find /tmp -atime -5 //表示查找在五天内访问过的文件(6)根据文件类型来查找文件
-type
f // 普通文件d //目录文件l //链接文件b //块设备文件c //字符设备文件p //管道文件s //socket文件
(7)根据大小来查找文件
-size find /tmp -size 2M //查找在/tmp 目录下等于2M的文件
find /tmp -size +2M //查找在/tmp 目录下大于2M的文件find /tmp -size -2M //查找在/tmp 目录下小于2M的文件
(8)根据文件权限查找文件
-perm
find /tmp -perm 755 //查找在/tmp目录下权限是755的文件find /tmp -perm +222 //表示只要有一类用户(属主,属组,其他)的匹配写权限就行find /tmp -perm -222 //表示必须所有类别用户都满足有写权限
(9)-nouser and -nogroup
find / -nogroup –a –nouser //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)
[查找完执行的action]
-
-print //默认情况下的动作
-
-ls //查找到后用ls 显示出来
-
-ok [commend] //查找后执行命令的时候询问用户是否要执行
-
-exec [commend] //查找后执行命令的时候不询问用户,直接执行
-
find /tmp -atime +30 –exec rm –rf {} ;
删除查找到的超过30天没有访问过文件
压缩
Gzip
压缩
gzip messages 权限不变 gzip -#(1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件越小,默认压缩比为6. gzip -c messages > messages.gz 原文件保留,但权限根据umask来设置解压
gunzip message.gz 或 gzip -d messages.gz 权限不变
gunzip -c messages.gz > messages 或 gzip -dc messages.gz > messages 或zcat messages.gz > message 压缩包保留,但权限根据umask来设置 -v 压缩或解压时,显示详细过程Bzip2
压缩
bzip2 messages 权限不变,原文件消失 bzip2 -k message 权限不变,原文件保留,可用在压缩和解压缩 bzip -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件为9. bzip2 -c messages > messages.bz2 原文件保留,但权限根据umask来设置解压
bunzip -k message.bz2 或 bzip2 -kd messages.bz2 权限不变,压缩包保留 bunzip -c messages.bz2 > messages 或 bzip2 -dc messages.bz2 > messages 或bzcat messages.bz2 > message 压缩包保留,但权限根据umask来设置 -v 压缩或解压时,显示详细过程Xz
- xz messages 权限不变,原文件消失
- xz -k message 权限不变,原文件保留,可用在压缩和解压缩
- xz -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件越小。
- xz -c messages > messages.xz原文件保留,但权限根据umask来设置
- unxz -k message.xz 或 xz -kd messages.xz 解压权限不变,压缩包保留
- unxz -c messages.xz > messages 或 xz -dc messages.xz > messages 或xzcat messages.xz > message 压缩包保留,但权限根据umask来设置
- -v 压缩或解压时,显示详细过程
打包
Tar
tar-
- -c 创建包
- -v 打包或解包显示过程
- -f 指定文件
- -t 查看包中的内容
- -x 从包中解开文件,可解开指定文件或全部文件 -xf user.tar passwd 仅解出passwd -xf user.tar 解出全部文件
- -C 与-x 配合,指定解压到的目的目录
- -j 压缩与解压缩时使用bzip2 tar jcvf userfile.tar.bz2 group gshadow passwd shadow
- -z 压缩与解压缩时使用gzip tar jcvf userfile.tar.bz2 group gshadow passwd shadow tar zcvf userfile.tar.gz group gshadow passwd shadow
- -J 压缩与解压缩时使用xz tar Jcvf userfile.tar.xz group gshadow passwd shadow 解压时不需要表明用什么压缩工具压缩,tar命令会自动识别 解压只需 tar -xvf 压缩包