【Linux 搜索与查找指令 + 文件压缩与解压指令 | 第八篇】

前言

在 Linux 的世界里,快速准确地找到所需文件和信息是每个开发者、系统管理员甚至普通用户的必备技能。想象一下,你的项目文件夹下有数百个文件,急需找到某个包含特定配置信息的文件;又或者在庞大的日志文件中,定位某个关键错误信息。此时,强大的 Linux 搜索和查找指令就是你手中的 “瑞士军刀”。今天,我们就一起深入探索这些指令,解锁 Linux 系统的高效操作姿势!

搜索与查找

基础搜索指令 : find

  • find 将从指定目录下递归地遍历各个目录,将满足所有条件的目录显示在控制台
  • find [搜索范围] [选项]

    选项功能
    -name按照文件的名称查找文件
    -user查找指定用户所属的文件
    -size按照指定的大小查找文件

    实例1:按照文件名称查询文件

    [root@xq100 kobe]# find /home/kobe -name 'Hello.java' # 查询/home/kobe目录下名称为Hello.java的文件
    /home/kobe/Hello.java
    [root@xq100 kobe]# find /home/kobe -name '*.java' # 查询所有java文件
    /home/kobe/Hello.java
    /home/kobe/Demo1.java
    

    实例2:在/opt目录下,查询root用户创建的文件

    [root@xq100 kobe]# find /opt -user 'root'
    

    文本查找利器:grep

    grep过滤查找,管道符,”|“,表示前一个指令的处理结果输出传递给后面的指令处理。一般我们将 | 和 grep 一起结合起来使用。

    grep [选项] 查找内容 源文件

    选项功能
    -n显示行号
    -i忽略大小写区别

    案例:查找在/home/Daming目录下的hello.java文件中,查找Hello所在行,并显示行号

    [root@hygge Daming]# cat hello.java |grep -ni "Hello"
    

    效果如下:
    在这里插入图片描述

    文件搜索的轻量级选手:locate

    locate指令可以快速定位文件路径。locate指令利用事先建立好的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快
    特别说明:由于locate指令基于数据库进行查询。所以第一次询运行前,必须使用updatedb指令创建locate数据库

    locate 文件名 指令

    需求:用locate指令快速定位 Hello.java 文件所在目录

    [root@xq100 ~]# updatedb # 一定要先执行这个指令
    [root@xq100 ~]# locate Hello.java # 快速定位Hello.java文件所在的目录并输出
    /home/kobe/Hello.java
    /root/Hello.java
    

    which指令

    which 指令名字 (可以查看哪个指令在那个目录下)
    例如:
    查看ls指令在那个目录 which ls
    查看reboot指令在那个目录下 which reboot

    [root@xq100 ~]# which ls # 查看ls指令所在的目录
    alias ls='ls --color=auto'
    /usr/bin/ls
    [root@xq100 ~]# which reboot # 查看reboot指令所在的目录
    /usr/sbin/reboot
    

    文件压缩与解压

    gzip 与 gunzip 指令

    gzip指令 压缩文件
    gunzip指令 解压缩文件

    注意: gzip将文件压缩为 *.gz的文件,原文件被压缩后不存在

    需求: 将kobe目录下面的Demo1.java进行压缩

    [root@xq100 kobe]# gzip Demo1.java # 将Demo1.java 压缩成Demo1.java.gz文件
    [root@xq100 kobe]# ll
    total 8
    -rw-r--r--. 1 root root 31 Aug 28 15:59 Demo1.java.gz
    -rw-r--r--. 1 root root 122 Aug 28 16:23 Hello.java
    lrwxrwxrwx. 1 root root 5 Aug 28 15:34 linkToRoot -> /root
    drwxr-xr-x. 2 root root 22 Aug 28 14:19 test
    

    使用gunzip解压缩:

    [root@xq100 kobe]# gunzip Demo1.java.gz # 解压之后 当前压缩文件会不存在
    

    zip 与 unzip 指令

    zip指令将文件压缩成 .zip文件

    zip指令 压缩文件
    unzip指令 解压缩文件

    -r : 递归压缩,即压缩目录
    -d : 指定解压缩后文件存放方目录

    需求:将kobe目录及其下面的所有文件进行压缩,压缩成myFile.zip

    [root@xq100 home]# zip -r myFile.zip kobe/
    

    需求:将home目录下面的zip文件解压到home/tmp文件目录中去

    [root@xq100 home]# mkdir tmp # 创建tmp目录
    [root@xq100 home]# unzip -d /home/tmp myFile.zip # 将zip文件解压到tmp目录下面
    

    tar 指令

    tar指令是打包指令,最后打包后的文件是.tar.gz的文件

    tar [选项] XXX.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar,gz)

    选项功能
    -c产生tar打包文件
    -v显示详细信息
    -f指定压缩后的文件名
    -z打包同时压缩
    -x解压tar包文件

    需求1:将home目录下面的kobe目录压缩成myFile.tar.gz

    [root@xq100 home]# tar -zcvf MyFile.tar.gz /kobe/
    [root@xq100 home]# ll
    total 4
    drwx------. 4 guojing taohuadao 158 Aug 28 15:26 guojing
    drwx------. 6 kobe kobe 194 Aug 28 16:36 kobe
    -rw-r--r--. 1 root root 1001 Aug 28 16:57 MyFile.tar.gz
    drwxr-xr-x. 3 root root 18 Aug 28 16:48 tmp
    drwx------. 5 xq xq 147 Aug 27 16:02 xq
    

    需求2:将myFile.tar.gz文件解压到当前目录

    [root@xq100 home]# tar -zxvf MyFile.tar.gz
    

    需求3:将myFile.tar.gz文件解压到/home/tmp目录下面

    [root@xq100 home]# tar -zxvf myFile.tar.gz -C /home/tmp
    [root@xq100 home]# cd tmp
    [root@xq100 tmp]# ll
    total 0
    drwx------. 7 kobe kobe 194 Aug 28 16:36 kobe
    

    如果我的内容对你有帮助,请 点赞 评论 收藏 。创作不易,大家的支持就是我坚持下去的动力!
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衫码上行

你的鼓励将是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值