一、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命令不在特殊指定的目录中查找 |
将匹配的文件输出到标准输出(默认功能,使用中可省略) | |
OPERATORS | 可以支持逻辑运算符 |
! | 取反进行查找数据 |
-a | and,取交集 |
-o | or,取并集 |
以下举几个常用的参数的用法:
#根据更改时间的天数来查找文件
#在家目录下查找更改时间为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