当前位置: 首页 > news >正文

Linux操作系统中的文件查找(which/whereis/find/locate/grep)及解压缩

目录

一、Linux中的文件查找方式

1.1.查找“命令”(which)

1.2.任意文件的查找(locate、find)

1.2.1.文件查找(locate)

1.2.2.文件查找(find)

1.2.2.1.find的完整书写格式

1.2.2.2.find常用参数详解

1.2.2.3.find使用案例

1.3.根据文件内容去找(grep)

1.3.1.grep介绍

1.3.2.grep使用案例

二、文件打包及压缩

2.1.打包压缩

2.2.不解压查看压缩包里边的内容

2.3.解压/解包


一、Linux中的文件查找方式

1.1.查找“命令”(which)

which/whereis 命令查找是专门用于查询命令文件所在位置的专用命令。它是通过从path环境变量中进行查询的。

使用man查看官方说明:

该函数接受一个或多个参数。对于每个参数,它会将原本会执行的可执行文件的完整路径打印到标准输出(stdout)。
当这个参数在shell提示符下输入时,它会通过在列出的目录中搜索可执行文件或脚本来实现这一功能。

1.2.任意文件的查找(locate、find)

locate和find都用于任意文件的查找,那他们有什么区别?

其实,他俩的区别更趋向于一个是已经将本地文件系统,计算并优化存储在数据库中,locate查找时从数据库中进行查找,更偏向于离线的意思(如果修改的结果未及时更新,可能导致查询结果不准确);

而find查询的时候是基于当前的文件系统,所以更加实时准确,但大多数情况下相对较慢。

1.2.1.文件查找(locate)

注意:在centos7中,locate命令默认未安装,因为它属于 mlocate 软件包的一部分,而该包未包含在最小化安装或部分基础系统配置中。

使用man命令查看官方文档(退出使用快捷键 q

locate 读取由 updatedb(8) 准备的一个或多个数据库,并将至少与其中一个 PATTERN 匹配的文件名写入标准输出,一个就是每行。
如果未指定--regex,则模式(PATTERNS)可以包含通配符。如果任何模式都不包含通配符,则locate的行为就像没有指定通配符一样模式为*模式*。
默认情况下,locate命令不会检查数据库中找到的文件是否仍然存在。locate命令永远不会报告在最近一次更新后创建的文件。但是可以执行updatedb来更新相关数据库。

1.2.2.文件查找(find)

使用man命令查看官方文档(退出使用快捷键 q

本手册页记录了GNU版本的find。GNU find通过评估给定的条件,在以每个给定文件名为根的目录树中进行搜索,根据优先级规则(见“运算符”一节),从左到右进行表达式计算,直至得出结果(左侧为对于与(and)操作,结果为假(false);对于或(or)操作,结果为真(true)。此时,find函数将移动到下一个文件名。

1.2.2.1.find的完整书写格式

语法:

find [path] [-option] [expression] [action];

命令 路径 选项 表达式 动作

1.2.2.2.find常用参数详解

-name filename #查找名为filename的文件

-size n[c] #查长度为n块[或n字节]的文件

-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件

-perm #按执行权限来查找

-user username #按文件属主来查找

-group groupname #按组来查找

-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

1.2.2.3.find使用案例

=============================实 际 使 用==================================

find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home/hadoop/software -mtime -2 在/home/hadoop/software下查最近两天内改动过的文件
find /home/hadoop/software -atime -1 查1天之内被存取过的文件
find /home/hadoop/software -mmin +60 在/home/hadoop/software下查60分钟前改动过的文件
find /home/hadoop/software -amin +30 查最近30分钟前被存取过的文件
find /home/hadoop/software -newer tmp.txt 在/home/hadoop/software下查更新时间比tmp.txt近的文件或目录
find /home/hadoop/software -anewer tmp.txt 在/home/hadoop/software下查存取时间比tmp.txt近的文件或目录
find /home/hadoop/software -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home/hadoop/software -user cnscn 列出/home/hadoop/software目录内属于用户cnscn的文件或目录
find /home/hadoop/software -uid +501 列出/home/hadoop/software目录内用户的识别码大于501的文件或目录
find /home/hadoop/software -group cnscn 列出/home/hadoop/software内组为cnscn的文件或目录
find /home/hadoop/software -gid 501 列出/home/hadoop/software内组id为501的文件或目录
find /home/hadoop/software -nouser 列出/home/hadoop/software内不属于本地用户的文件或目录
find /home/hadoop/software -nogroup 列出/home/hadoop/software内不属于本地组的文件或目录
find /home/hadoop/software -name tmp.txt -maxdepth 4 列出/home/hadoop/software内的tmp.txt 查时深度最多为3层
find /home/hadoop/software -name tmp.txt -mindepth 3 从第2层开始查
find /home/hadoop/software -empty 查找大小为0的文件或空目录
find /home/hadoop/software -size +512k 查大于512k的文件
find /home/hadoop/software -size -512k 查小于512k的文件
find /home/hadoop/software -links +2 查硬连接数大于2的文件或目录
find /home/hadoop/software -perm 0700 查权限为700的文件或目录

find / -amin -10 查找在系统中最后10分钟访问的文件
find / -atime -2 查找在系统中最后48小时访问的文件
find / -empty 查找在系统中为空的文件或者文件夹
find / -group cat 查找在系统中属于 groupcat的文件
find / -mmin -5 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 查找在系统中最后24小时里修改过的文件
find / -nouser 查找在系统中属于作废用户的文件
find / -user fred 查找在系统中属于FRED这个用户的文件

1.3.根据文件内容去找(grep)

1.3.1.grep介绍

前面提到的文件查找方式,which用于命令文件的查找,locate、find用于对任意文件的查找,这种方式查找的方式和结果都只针对于文件名称来进行。而grep的方式是根据文件里的内容来进行查找和匹配。

使用方式:

grep [option(s)] pattern [filename]

grep命令中的文件名是可选的。如果没有文件名,grep等待标准输入。输入一行后,grep在行中搜索正则表达式,如果包含该特定表达式就显示此行。用户指示输入结束时(Ctrl + d),执行才结束。

1.3.2.grep使用案例

在/etc 目录下查找文件内容中有127.0.0.1 的内容:

在当前文件夹下查找我们的含有jdk的文件有哪些

二、文件打包及压缩

tar命令是Unix/linux系统中备份文件的可靠方法几乎可以工作于任何环境中,它的使用权限是所有用户,建议针对目录。

语法:tar 选项 压缩包名称 源文件

GNU的“tar”工具可以将多个文件一起保存到单个磁带或磁盘存档中,并且可以从存档中恢复单个文件。

功能:仅打包文件/目录(不压缩),需配合gzip/bzip2/xz(其实也就是关注一下三种不同的方式该如何使用)实现压缩。
常用选项

命令解释
-c压缩
-x解压
-t不解压查看
-v显示过程
-f指定包文件名(必须放在选项最后,如-zxvf,-zcvf)
-z用gzip压缩/解压(.tar.gz 或 .tgz)
-j用bzip2压缩/解压(.tar.bz2 或 .tbz2)
-J用xz压缩/解压(.tar.xz)

注意:只需要关注文件类型,c用来打包,x用来解包,t用来查看

2.1.打包压缩

# 打包并压缩为 .tar.gz(最常用)
例如:tar -zcvf study.tar.gz ./study/

2.2.不解压查看压缩包里边的内容

# 不解压查看内容
tar -tvf study.tar.gz

2.3.解压/解包

# 解压 .tar.gz
tar -jxvf study.tar.gz

tar -xvf study.tar.gz -C ./tar_test
//-C重定向到//tmp目录

http://www.rkmt.cn/news/1412790.html

相关文章:

  • 2026腾讯游戏发布会亮点多:42款游戏新动态,AI大招与玩法全球化齐登场!
  • 物联网与VR融合:高校资产可视化管理系统架构与实战
  • 2026 常州闲置名包回收指南:合扬同城上门更省心 - 合扬奢侈品交易中心
  • 使用Nodejs编写脚本配合SpringBoot消费TaotokenAPI服务
  • 认知场与物理场同构证明——基于世毫九认知统一场论的心物统一形式化推导(SH9-TECH-2026-003初稿待修回)
  • 序列蒙特卡洛与前瞻权重:优化大语言模型推理的采样策略
  • 终极英雄联盟工具箱:如何用League Akari提升你的游戏效率
  • 合肥本地深度实测|2026金价行情解析+避坑指南,5家正规商家盘点 - 奢侈品回收测评
  • HPC实时化新路径:基于极值理论的概率WCET分析与GPU优势
  • 分段SAR ADC中被动电荷共享技术的线性度分析与设计权衡
  • 别再到处找封装了!手把手教你用Padstack Editor搞定STM32和0402电阻的焊盘(附命名规范)
  • 保姆级教程:在Ubuntu 22.04上从源码编译安装OSQP C++库(附常见编译错误解决)
  • 从‘声带震动’到‘AI变声’:用Python实战解析基音周期与共振峰(附完整代码)
  • 5分钟搞定!国家中小学智慧教育平台电子课本批量下载终极方案
  • Android Keystore与硬件安全模块实战解析
  • 绵阳黄金回收实测:5家回收商横向对比与避坑指南 - 奢佳美黄金珠宝
  • 2026江苏长晶科技代理商推荐榜单 - 资讯速览
  • 6G近场通信:圆形H-MIMO波束成形设计与IDET应用
  • python实战AI 预测、 AI 图片识别、 AI聊天机器人、 调用 ChatGPT 自动化
  • 量子纠错码中逻辑Clifford门合成的普适算法与硬件优化
  • 2026西安财税疑难处理|认准西安长安德勤财税,专业化解企业税务危机 - 小柏云
  • 从托管平台到自建VPS:AI技能迁移实战与成本优化指南
  • 从Shader代码入手:手把手教你让自定义URP Shader同时兼容SRP Batcher和GPU Instancing
  • CTFHub默认口令题实战复盘:我是如何绕过亿邮网关验证码拿到Flag的
  • AI驱动的漏洞挖掘与攻防:从Claude Mythos看网络安全新范式
  • 给你的浏览器装上翅膀:像魔法一样轻松获取百度文库文档
  • spring篇1-spring的ioc
  • UV打印机断墨了别慌!手把手教你用PrintExp的‘断孔补偿’功能快速修复
  • 昇科仪器——深耕生物分析领域的进口分子质量光度计推荐生产厂家 - 品牌推荐大师1
  • 企业级LAMP备份【20260528】001篇