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

(0)
wangxczwangxcz
上一篇 2018-04-12
下一篇 2018-04-12

相关推荐

  • 第六周

    总结

    Linux笔记 2018-05-06
  • Linux基础入门介绍、系统组成和获取命令帮助

    描述计算机的组成及其功能。
    按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
    描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
    说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
    如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
    请罗列Linux发行版的基础目录名称命名法则及功用规定。

    2018-06-23
  • VM虚拟机克隆中的网络问题

    使用VM中的虚拟机克隆,可以很方便的搭建一些实验或生成环境,但在克隆时应注意几个问题: 1、网络 一般在克隆后,配置好的网络地址都会保留,需要重新对克隆的机器更改IP地址和hostname 具体更改方法为: IP地址:使用vi编辑 /etc/sysconfig/network-scripts/ifcfg-eno16777736文件,将ip地址更改为需要的ip…

    Linux笔记 2018-05-08
  • 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。

    #COMMAND:一个可执行的二进制程序文件。 #OPTIONS:指定命令运行的特性,通常由两种表现形式:短选项-d,长选项–help。如果同一命令在运行时使用多个短选项,可将多个短选项合并,如:-l -d -> -ld。 #ARGUEMENTS:命令的作用对象;不同的命令的作用对象不同,可以是文件,目录,硬件设备等等。 #ifconfig…

    Linux笔记 2018-05-13
  • 新加磁盘的实现方法

    生产中硬盘会不断的出现故障此时我们就需要更换新的硬盘,那么拿到一个新的硬盘之后我们该如何来使用呢?一个新的硬盘首先我们要把旧硬盘上的东西进行备份然后用新的硬盘替代。新硬盘使用之前我们必须要先对新硬盘进行 分区—>创建文件系统—>挂载—>设置开机自启 这几个步骤,那么接下来我们一个一个来说明每个步骤的实现过…

    Linux笔记 2018-04-30
  • nginx

    nginx(web server,web reverse proxy) http事务:request <—-> response request: <method> <URL> <version> <HEADERS> … <body> response: <…

    2018-06-29