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/桌面

浙公网安备 33010602011771号