Linux(三)之查找和压缩指令

Linux查找和压缩指令

一、查找指令

find 指令

指令格式:find 【搜索范围】【选项】 (功能描述:从指定目录向下递归地遍历其各个子目录,将满足条件地文件或者目录显示在终端)

选项说明

选项 功能
-name <查询方式> 按照指定的文件名查找模式查找文件
-user <用户名> 查找属于指定用户名的所有文件
-size<文件大小> 按照指定的文件大小查找文件
# 按照文件名 查找home目录下的hello.txt文件
find  /home -name hello.txt
# 按照拥有者:查找/opt目录下,用户为root的所有文件
find /opt -user root
# 查找整个Linux系统下大于200M的文件(+n 大于  -n 小于 n等于)
find /  -size +200M 

locate 指令

指令格式:locate 【需要查找的文件】 (功能描述:可以快速定位到文件路径,类似于Window下文件查找)

locate指令可以快速定位文件路径,locate指令利用事先建议的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,每天会自动更新locate中的数据。

locate a.txt			# 查找a.txt的文件路径
# 由于查询的结果是模糊查询,可能会出现很多的数据,此时,可以使用head,more,less,head等文件查看指令,便于阅读
locate a.txt | more 	# 以more查看文件的方式查看a.txt文件

注意:由于locate数据更新是一天更新,很容易出现文件已经被删除了,但仍然可以查找的到路径,或者新建一个文件,查找不到路径的情况。所以,建议在新建完文件后,进入root(系统管理员),执行updatedb,执行更新操作,即可查看新创建的文件。

touch b.txt				# 创建一个b.txt空文件
find  b.txt				# find可以查找到b.txt
locate b.txt			# locate无法查找,因为更新前的数据库中并没有b.txt
updatedb				# 进入root模式,执行更新数据库updatedb
locate b.txt			# locate可以查找新建的b.txt

find指令和locate指令的不同

1、locate查询速度快,find查询速度慢;locate命令查找文件在数据库中查找,查找的速度非常快,几乎是马上列出结果;而find命令查找时则是直接查找硬盘上的文件,查找的速度相应的非常慢。

2、find命令优点是能实现精确查找,缺点对系统资源耗费大locate 命令实现快速查找,它的机制是在/var/lib/mlocate/mlocate.db 创建了一个这样的数据库,系统内的所有文件会被定期的收入到这
个数据库中,通过locate命令是在这个数据库内进行查找,所以速度特别的快。对于新创建的文件或目录,我们需要用命令:updatedb 来更新数据库后再用locate命令即可生效。另外,对于/tmp这个临时目录下的文件或目录,利用locate命令是无法查找的。

which 指令

指令格式:which 【指令】 (功能描述:搜索某个系统命令的位置,并且返回第一个搜索结果。当加上-a参数时返回所有查找结果)

where cd 		#查找cd指令的文件路径

grep指令

指令格式:grep【选项】【查询内容】【文件】 (功能描述:grep是过滤查找,| 是管道符,表示前面指令处理的结果交给后面的指令进行执行和处理)

选项 功能
-n 显示匹配以及行号
-i 忽略大小写
grep -n 'yes' /home/a.txt		# 在a.txt文件中筛选出所有的yes并写输出行号

二、压缩指令

gzip/gunzip指令

指令格式:

  • gzip 【文件】 (功能描述:压缩文件,只能将文件压缩为 *.gz 文件)

  • gunzip 【文件.gz】 (功能描述:解压缩文件命令)

# 将home目录下的 a.txt 文件进行压缩
gzip /home/a.txt
# 将home目录下的 a.txt.gz 进行解压缩
gunzip /home/a.txt.gz

zip/unzip 指令

指令格式:

  • zip 【选项】xxx.zip (功能描述:压缩文件和目录的指令)

  • unzip 【选项】xxx.zip (功能描述:解压缩文件)

选项说明

选项 功能
-r 递归压缩,即压缩目录,用于zip指令
-d 指定解压之后,文件存放的位置,用户unzip指令
# 将/home下的所有文件/文件夹压缩成myhome.zip
zip -r myhome.zip /home/
# 将myhome.zip 解压缩到/桌面
unzip -d /home/用户/桌面  /myhome.zip

重点

gzip和zip的区别:gzip只能压缩单个文件,无法压缩多个文件;zip可以压缩多个文件,并且解压后可以指定解压路径

tar指令

指令格式:tar【选项】xxx.tar.gz (打包目录,并且压缩的格式为.tar.gz)

选项说明

选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包并压缩,用gz进行解压或者压缩
-x 解压.tar文件
# 压缩多个文件
tar -zcvf pc.tar.gz   /home/pig /home/cat.txt
# 将/home的文件夹 压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将pc.tar.gz 解压到当前目录
tar -zxvf  pc.tar.gz
将myhome.tar.gz 解压到指定目录下(如/home/用户/桌面,jack用户存在)
tar -zxvf  pc.tar.gz  -C /home/jack/桌面
posted @ 2022-09-11 17:03  食尸之鬼  阅读(338)  评论(0)    收藏  举报