Linux系统文件查找与解压缩方法

如同我们平时在操作 Windows系统时,文件查找与解压缩文件是经常要使用到的操作,Linux系统中也要经常用到相同的操作,今天我们就来介绍Linux系统中的一些文件查找与解压缩时使用到的工具。

本节索引

一、文件查找

二、压缩与解压缩

 

如同我们平时在操作 Windows系统时,文件查找与解压缩文件是经常要使用到的操作,Linux系统中也要经常用到相同的操作,今天我们就来介绍Linux系统中的一些文件查找与解压缩时使用到的工具。

timg_image&quality=80&size=b9999_10000&sec=1523524960870&di=c1ed97ff04b653b2e198

一、文件查找

Linux系统中自带两个文件查找命令locate和find,那两个命令如何进行使用选择呢?各自又有什么优点和缺点呢,我们来详细看一下:

(1)locate命令

优点:搜索速度快,节省系统性能(生产环境适合使用locate)

缺点:不能即时更新(文件索引数据库在每次开机后更新),要想搜索最新文件需手动输入命令updatedb更新文件索引数据库,模糊搜索;

 

Locate命令适合搜索不经常变化的文件,如系统文件

 

查询系统上预建的文件索引数据库:

/var/lib/mlocate/mlocate.db

 

locate

-i      忽略大小写

-b     只搜索基名符合条件的文件

-n     只列出前几个

-r      支持扩展正则表达式

 

(2)find命令

优点:精确查找;实时查找;搜索条件灵活

缺点:查找速度慢;占用系统性能

 

find [OPTION]…[查找路径] [查找条件] [处理动作]

指定搜索层级:

不指定情况下默认当前目录下搜索

-maxdepth level      最大搜索深度,默认为1层

-mindepth level 最小搜索深度

 

根据文件名和inode查找:

-name “filename” 支持使用通配符glob;注意文件名一定加””

-iname “filename” 不区分字母大小写

-inum n             按节点号inode查找文件

-samefile name       查找相同inode的文件,即硬链接

-links n     查找链接数为n的文件

-regex “PATTERN” 使用正则表达式搜索

 

根据属主、属组查找:

-user USERNAME:查找属主为指定用户(UID)的文件

-group GRPNAME:查找属组为指定组(GID)的文件

-uid UID:       查找属主为指定UID号的文件

-gid GID:       查找属组为指定GID号的文件

-nouser:        查找没有属主的文件

-nogroup:     查找没有属组的文件

-nouser -o -nogroup       查找没有属主或没有属组的文件

 

根据文件类型查找:

-type TYPE:

f:   普通文件

d:  目录文件

l:   符号链接文件

s:   套接字文件

b:  块设备文件

c:  字符设备文件

p:  管道文件

 

搜索空文件或目录:

-empty             查找空文件或空目录

例:find/app -type d -empty

 

组合条件:

-a     与

-o     或

-not,!       非

 

德摩根定律:

                  (非A)或(非B)=非(A且B)

                  (非A)且(非B)=非(A或B)

注意:使用()表示组合条件时,括号内两边一定要加空格,且括号一定要加转义符”\”。

 

根据文件大小来查找:

-size[+|-]#UNIT

常用单位:k,M,G,c(byte)

1024c  (1024-1,1024]

+1024c    (1024,+)

-1024c     [0,1024-1]

 

根据时间戳查找:

以“天”为单位:

-atime[+|-]#

3:[3,4)

+3:[4,+]

-4:[0,4)

-mtime

-ctime

以“分钟”为单位:

-atime

-mtime

-ctime

根据权限查找:

-perm[/|+|-]MODE

MODE:精确权限匹配(数字法)

/|+MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系;

CentOS6使用“+”,CentOS7使用“/”

-MODE:没类对象权限都有对应权限时,才会匹配,且关系;

 

处理动作:

-print                默认的处理动作,显示到屏幕

-ls             类似于对查找的文件执行”ls -l”命令

-delete             删除查找到的文件,不进行提示

-fls file     查找到的所有文件的长格式信息保存至指定文件中

-ok COMMAND{}\; {}代表前面搜索到的结果,-ok后必须跟\;结尾,语法要求;对

查找到的每个文件执行COMMAND命令,每个文件执行命令时,会要求

用户确认

例:find -name “f*” -ok rm {} \;

将f开头的文件删除,每个文件删除时会要求确认。

-exec COMMAND{}\; 对每个搜索到的文件执行COMMAND命令,不要求用户确认

例:find -name “f*” -exec mv {} /data/ \;

将f开头的文件移动到data目录下,不要求用户确认

 

 

 

二、压缩和解压缩

Linux系统中支持多种文件解压缩工具,不同压缩工具压缩比有所不同,压缩后的后缀名也不一样。要注意的是:前面我们说过在linux系统中,文件是不通过后缀判断的,但在解压缩中是个例外,不同的解压缩工具对后缀是有要求的。

Linux常见解压缩工具:

file-roller         图形化解压缩工具(类似于windows系统winrar)

compress/uncompress:       .Z后缀

gzip/gunzip:          .gz后缀(主流)

bzip2/bunzip2:              .bz2后缀(主流)

xz/unxz:                 .xz后缀(主流,新兴)

zip

tar

cpio

 

(1)compress/uncompress

-d     解压缩,相当于uncompress,压缩文件删除

-c     压缩结果输出至标准输出,不删除原文件

例:compress -c b > b.Z 解压文件b并且不删除

-v     显示详情

uncompress    解压缩,同compress -d,压缩文件删除

zcat file.Z > file  解压缩,原压缩文件不删除

 

(2)gzip/gunzip

-d     解压缩,相当于gunzip

-c     将压缩结果输出至标准输出,不删除原文件

-v     显示详情

zcat file.gz > file  解压缩,原压缩文件不删除

 

(3)bzip2/bunzip

-k     保留原文件

-d     解压缩

bunzip2            解压缩

bzcat                 不解压缩前提查看文本内容,与gzip的zcat用法类似

 

(4)xz/unxz

-k     保留原文件

-d     解压缩

unxz         解压缩,功能同xz -d

xzcat                 功能同zcat,bzcat

 

压缩比:xz > bzip2 > gzip > compress

 

(5)zip/unzip

打包压缩

zip -r /tsetdir/sysconfig /etc/sysconfig/

解包解压缩

unzip sysconfig.zip

cat /var/log/messages|zip messages –

unzip -p message > message      解压缩重定向

 

 

 

(6)tar工具:(Tape ARchive,磁带归档的缩写)打包工具,并不压缩

tar[OPTION]…

-c     创建一个打包文件

-C     指定解压的目录

-p     保留属性

-v     查看过程

-f      对哪个进行文件归档或打包

-t      查看列表

 

 

1.创建文档(打包文件或目录)

tar -cpvf /PATH/TO/SOMEFILE.tar FILE…

2.追加文件到归档:注:不支持对压缩文件追加

tar -r -f /PATH/TO/SOMEFILE.tar FILE…

3.查看归档文件中的文件列表

tar -t -f /PATH/TO/SOMEFILE.tar

4.展开归档(解包)

tar -x -f /PATH/TO/SOMEFILE.tar

tar -x -f /PATH/TO/SOMEFILE.tar -C /PATH/

5.结合压缩工具实现:归档并压缩

-j:bizp2

-z:gzip

-J:xz

 

6.-T选项指定输入文件,-X选项指定包含要排除的文件列表

例:tar zcvf myback.tgz -T /root/includefilelist -X /root/excludefilelist

 

7.分割打的tar文件为多份小文件:

split

-b Size -d tar-file-name prefix-name

-b 1M –d mybackup.tgz mybackup-parts

-b 1M mybackup.tgz mybackup-parts

8.合并tar分割的多个小文件:

cat mybackup-parts* > mybackup.tar.gz

 

(7)cpio

功能:复制文件从或到归档

cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以

“cpio”或者”tar”结尾的文件

 

cpio[option] > 文件名或者设备名

cpio[option] < 文件名或者设备名

选项

-o     将文件拷贝打包成文件或者将文件输出到设备上

-i      解包,将打包文件解压或将设备上的备份还原到系统

-t      预览,查看文件内容或者输出到设备上的文件内容

-v     显示打包过程中的文件名称

-d     解包生产目录,在cpio还原时,自动的建立目录

-c     一种较新的存储方式

示例:

将etc目录备份

find ./etc -print |cpio -ov >etc.cpio

内容预览

cpio -tv < etc.cpio

解包文件

cpio -idv <etc.cpio

 

 

关于linux系统的文件查找和解压缩方法今天就先介绍到这里了。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95750

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班