1.find ( : 文件搜索 )
命令格式:
find [搜索范围] [匹配条件]
1) 根据文件名查找 ( -name )
-name (区分大小写)
-iname (不区分大小写)
例:在目录/etc下查找文件init
精准搜索:find /etc -name init
模糊搜索:
find /etc -name *init* (名字里包含init)
find /etc -name init* (以init开头的文件)
find /etc -name init??? (只记得init后有3个字符:如initabc)
2) 根据文件大小查找 ( -size )
· +n(大于) -n(小于) n(等于)
· 单位为数据块,数据块为linux存储文件的最小单位
· 1个数据块 = 512字节 = 0.5k
例:在根目录下查找大于100 MB的文件
100MB = 102400k = 204800个数据块
find / -size +204800
3) 根据所有者查找 ( -user )
例:在home目录下查找所有者为tom的文件
find /home -user tom
4) 根据所属组查找 ( -group )
例:在home目录下查找所属组为jerry的文件
find /home -group jerry
5) 根据时间属性来查找 ( - min )
-amin 访问时间 (access)
-cmin 文件属性 (change)
-mmin 文件内容 (modify)
+n 表示超过n分钟
-n 表示在n分钟内
例:在 /etc 下查找 5分钟内 被修改 属性 的文件和目录
find /etc -cmin -5
例:在 /etc 下查找 30分钟内 被修改 文件内容 的文件
find /etc -mmin -30
6) 根据文件类型查找 ( -type )
-type f/d/l (文件/目录/软链接文件)
例:查找 /etc目录下 查找以init开头的文件,不要以init开头的目录
find /etc -name init* -a -type f
7) 连接选项
-a 两个条件同时满足 (and)
-o 两个条件满足任一 (or)
例:在 /etc 下查找 大于80 MB,且小于100MB 的文件
find /etc -size +163840 -a -size -204800
(80*1024*2=163840,100*1024*2=204800)
8) 执行选项 ( 对查找到的结果执行操作 )
命令格式:
find命令 + -exec/-ok 命令 {} \;
· -exec 查找时不询问
· -ok 查找时挨个询问,输入y确定, n否定
· 其中 “ {} \;” 暂时认为是固定格式
例: 在目录/etc下查找 inittab 文件并显示其详细信息
find /etc -name inittab -exec ls -l {} \; (注意空格)
例:在/etc 目录下查找 以init开头的文件并显示其详细信息,且排除以init开头的目录
find /etc -name init* -a -type f -exec ls -l {} \;
9) 根据i节点查找 ( - inum )
例:在当前文件夹下找到i节点为529689的文件并删除
find . -inum 529689 -exec rm {} \;
·linux系统中每个文件都有唯一一个i节点
·可用于查找文件的所有硬链接(硬链接与源文件的i节点相同)
2.locate ( : 在文件资料库中查找文件 )
命令格式:
locate [文件名]
·严格区分大小写
·不区分大小写方法:locate -i [文件名]
·若刚新建的文件,使用locate找不到,需进入root模式下,更新文件资料库
更新文件资料库:
·进入root :输入 su root , 输入密码(密码不显示)后,回车
·输入命令 : updatadb
·若文件存在于/tmp下(临时文件存放处),则更新文件资料库后,locate也查不到
3.which ( : 搜索命令所在目录及别名信息 )
命令格式:
which [命令]
·一般存放在/bin或/usr/bin 是所有用户可使用的命令
·存放在/sbin或/usr/sbin下,只有root才可以使用的命令
·若找不到某些命令,则该命令可能为shell内置命令
4.whereis ( : 搜索命令所在目录及帮助文档所在位置 )
命令格式:
whereis [命令]
·其中 , 后缀为 .1.gz的文件为 命令的帮助
·后缀为 .5.gz的文件为 配置文件的帮助
5.grep ( : 在文件中搜索子串匹配的行并输出 )
命令格式 :
grep -iv [指定字串] [文件]
-i 不区分大小写
-v 排除指定字串
例:将某个文件中 以井号开头(一般为注释行) 的文件行排除,查找有效行
grep -v ^# [文件]