在 Linux 的世界里,快速准确地找到所需文件和信息是每个开发者、系统管理员甚至普通用户的必备技能。想象一下,你的项目文件夹下有数百个文件,急需找到某个包含特定配置信息的文件;又或者在庞大的日志文件中,定位某个关键错误信息。此时,强大的 Linux 搜索和查找指令就是你手中的 “瑞士军刀”。今天,我们就一起深入探索这些指令,解锁 Linux 系统的高效操作姿势!
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 [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示行号 |
-i | 忽略大小写区别 |
案例:查找在/home/Daming目录下的hello.java文件中,查找Hello所在行,并显示行号
[root@hygge Daming]# cat hello.java |grep -ni "Hello"
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 指令名字 (可以查看哪个指令在那个目录下)
例如:
查看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将文件压缩为 *.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指令将文件压缩成 .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.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