Linux系统中和文件相关的命令

一、file:可以获取文件类型信息

二、which:获取命令文件所在路径

#获取命令出自哪个程序包

①该命令已经安装

rpm -qf `which 命令文件`

②该命令未安装,希望找到安装包是什么

yum provides 命令文件

举个例子,假如我现在想使用locate命令,但我不知道相关的安装包是什么

yum provides locate

这样我们就得到了locate命令的程序包名叫mlocate

三、locate:用于查找文件所在路径 类似windows中everything软件功能

安装完locate后,我们就可以查找文件所在路径了。

#创建一个类似索引的文件,系统会自动将所有文件的路径放置到这个数据库里面(每次使用都记得要更新!

updatedb

#查找文件(假如我要查找网卡文件)

注:你们的网卡文件可能是ifcfg-ens33

locate ifcfg-eth0

常用参数:
参数选项解释说明
-c不显示匹配的内容
-i匹配时忽略大小写
-r支持基本正则表达式匹配
--regex支持扩展正则表达式匹配

四、find:此命令用于查找目录下的文件,同时还可以调用其他命令执行相应的操作

常用参数:
参数选项解释说明
pathname命令所查找的目录路径,如用 "." 表示当前目录,用 / 来表示系统根 目录
Options参数信息
-depth从指定目录下最深层的子目录开始查找
-maxdepth levels查找的最大目录级数,levels为自然数
-mindepth levels查找的最小目录级数,levels为自然数
Tests限定的条件
-mtime [- n|n|+n]

按照文件的修改时间来查找文件(这个参数常用)

·-n 表示文件更改时间距现在n天以内

·+n 表示文件更改时间距现在n天以前

·n 表示距现在第n天

-atime [-n|n|+n]按照文件的访问时间来查找文件,单位是天
-ctime [-n|n|+n]按照文件的状态改变时间来查找文件,单位是天
-amin按照文件的访问时间来查找文件,单位是分钟
-cmin按照文件的状态改变时间来查找文件,单位是分钟
-mmin按照文件的修改时间来查找文件,单位是分钟
-group按照文件所属的组查找文件
-name按照文件名查找文件,只支持“*”“?”“[]”等特殊通配符
-newer查找更改时间比指定文件新的文件
-path pattern指定路径样式,配合-prune参数排除指定目录
-perm按照文件权限来查找文件
-size n[cwbkMG]查找文件长度为n大小的文件,带有cwbkMG时表示长度以字节计
-type

查找某一类型的文件,具体说明如下

b 块设备文件

c 字符设备文件

d 目录文件

* p 管道文件

l 符号链接文件

f 普通文件 *

s socket文件

Actions执行动作方式
-delete将查找出的文件删除(慎用)
-exec对匹配的文件执行该参数所给出的执行命令
-ok与-exec的作用相同,但在执行每个命令之前,都会让用户来确定是否执行
-prune使用这一选项可以使find命令不在特殊指定的目录中查找
-print将匹配的文件输出到标准输出(默认功能,使用中可省略)
OPERATORS可以支持逻辑运算符
!取反进行查找数据
-aand,取交集
-oor,取并集

以下举几个常用的参数的用法:

#根据更改时间的天数来查找文件

#在家目录下查找更改时间为100天以前的文件

find ~ -mtime +100

#在家目录下查找更改时间为1天内的文件

find ~ -mtime -1

 #根据文件名称查找数据:
#在根目录下查找名字为hosts的文件

find / -name "hosts"

#在根目录下查找前五个字符为ifcfg的文件

find / -name "ifcfg*"

#在etc目录下查找test开头的文件,不区分大小写

find /etc -iname "test*"

#根据指定文件类型查找

#在家目录下查找te开头的文本文件

find ~ -type f -name "te*"

#根据指定文件大小查找

#在家目录下找10M以上的文件

find ~ -size +10M

#在家目录下找10M以下的文件

find ~ -size -10M

#扩展用法: 可以检索系统中的大文件,进行磁盘清理
#在根目录下找300G以上的文件

find / -size +300G

# 查找文件时希望排除单个目录

find /date -path "/date/test01" -prune -o -name "test" -print

#查找文件时希望忽略多个目录

find /date \( -path "/date/test01" -o -path "/date/test03" \) -prune -o -name "test" -print

解析命令中的参数:
-path "/date/test01" -o -path "/date/test03"是使用括号进行分组,表示要排除的路径。-path 用于匹配路径,-o 表示逻辑或(OR)。
-prune 是 find 命令的选项之一,用于排除指定的文件夹。当匹配到指定的文件夹时,-prune 会阻止进一步搜索该文件夹的内容。
-o 是 find 命令的选项之一,用于指定多个条件之间的逻辑关系。在本例中,-o 表示逻辑或(OR)。
-print 是 find 命令的选项之一,用于将搜索到的文件路径输出到终端。
所以,运行该命令后,find 命令将在 /date 目录及其子目录中搜索文件名为 "test" 的文件,同时排除 /date/test01 和 /date/test03 文件夹。符合条件的文件路径 /date/test02/test 将被输出到终端。

#find命令结合-exec参数对数据进行批量处理

#实现文件批量复制操作

find . -type f -name "*.txt" -exec cp {} /tmp \;

#实现文件批量删除操作

find . -type f -name "*.txt" -exec rm -f {}  \;

解析命令中的参数:

-exec后面跟的是command命令,最后以分号 ;作为结束标志,由于各个系统分号会有不同的意义,所以要转义

{} 的作用,表示代替前面find命令找到的文件或目录数据信息,并{}后面要有空格

command可以是其他任何命令。

五、tar:tar是linux系统里将多个文件打包在一起并且可以实现将打包的文件解压的命令。tar是系统管理员最常用的命令之一。

常用参数:
参数解释说明

z

通过gzip方式压缩或解压
j通过bzip2方式压缩或解压
c创建新的tar包
v显示详细的tar命令执行过程
f指定压缩文件的名字和路径信息
t不解压只是查看tar包内的数据信息
p保持文件的原有属性
P以绝对路径打包,危险参数
x解压tar包
C指定解压的目录路径
--exclude=PATTREN打包是排除不需要处理的文件或目录
-X 文件名从指定文件读取不需要处理的文件或目标列表
-N 时期仅打包比指定日期新的文件,可用于增量打包备份
-h打包软链接文件指向的真实源文件
--hard-dereference

打包硬链接文件

以下举几个常用的参数的用法:

#使用gzip压缩方式,创造出新的压缩包名为test.tar.gz,指定路径为当前路径,并显示压缩过程

tar zcvf test.tar.gz .

#解压数据

tar xvf test.tar.gz ./date

#查看压缩包中数据

tar tf test.tar.gz

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你先救我妈我再游一会

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值