linux-find查找

导语:
which
whereis
locate
find

查找
which 只能查询命令
#which rpm

whereis
可以查询命令和配置文件的位置
#whereis rpm
#whereis passwd

whatis
#whatis rpm 和下面命令一样的效果,查询rpm命令都在哪章man有解释
#man -f rpm

locate
维护着一个查询数据库
#vim /etc/updatedb.conf
1)文件系统类型
2)目录
如果被更改之后,需要更新数据库
#updatedb 手动更新数据库

#locate 被查找的关键字
#locate *.txt
*是通配符

find
#find 路径 条件 跟条件相关的操作符 [-exec|-ok 动作]
路径
默认不写路径时查找的是当前路径
例:
/etc
./
/
/var/ftp

条件
名称 大小 时间 文件类型 用户 组 权限 ...

-name 文件名称 按名称查找

find / -name a.txt

#find / -name a.t??
 find / -name a.tx?
#find / -name ‘*a.txt‘
 find / -iname ‘*a.txt‘

-iname 不区分大小写

?表示单个字符
*表示所有字符

一般情况下{}不能用
{1..100}
{abc,abd,efg}

通配符:

  • ? [] {}
  • 表示所有字符
    ? 表示任意单个字符
    [] 表示其中任意一个单个字符
    例:
    [abc]
    [a-z]
    [a-Z]
    [a-zA-Z]
    [!a-z] !取反
    [0-9]

    a到Z的匹配顺序是aAbBcC...
    [[email protected] python]# ls
    a.txt E.txt j.txt N.txt s.txt W.txt
    A.txt f.txt J.txt o.txt S.txt x.txt
    b.txt F.txt k.txt O.txt t.txt X.txt
    B.txt g.txt K.txt p.txt T.txt y.txt
    c.txt G.txt l.txt P.txt u.txt Y.txt
    C.txt h.txt L.txt q.txt U.txt z.txt
    d.txt H.txt m.txt Q.txt v.txt Z.txt
    D.txt i.txt M.txt r.txt V.txt
    e.txt I.txt n.txt R.txt w.txt

    {hello,hi,king,xiaoxuan}
    #touch {python,wing,haha}.txt
    {a..z}
    {1..100}
    /dev/vdc{1,2,3}

按大小查找
-size
#find / -size 50M
#find / -size +50M
#find / -size -50M
查找大于10M小于20M
#find / -size +10M -a -size -20M

-a可以换成-and
#find / -size -10M -o -size +20M

-o可以换成-or
find ./ ! -size -10M
find / -size -50M -a -name "wing"
find / ! ( -size -50M -a -name "wing" )
!取反

( )
\ 转义字符 把有意义的变的没意义 把没意义的变的有意义

附加:用dd命令做测试数据
#dd if=/dev/zero of=/tmp/aa.txt bs=5M count=2

按文件类型查找
-type
f
d
b
c
l
s
p
#find / -type c -exec ls -l {} \;

#find /tmp/ -name aa.txt -exec rm -i {} \;
find /tmp/ -name aa.txt -ok rm {} \;
< rm ... /tmp/aa.txt > ? y

-exec 对之前查找出来的文件做进一步操作
-ok 和-exec一样,只不过多了提示

按权限查找:
-perm
find ./ -perm 644 -ls
./dd.txt

按用户和组查找
-user
-group
#find ./ -user wing
./bb.txt
find ./ -group user3
./cc.txt

按时间
-atime access时间
-mtime modify时间
-ctime change时间
-amin
-mmin
-cmin

time表示单位是天
min 表示分钟
#stat 文件

查找两分钟内访问过的文件
#find /tmp -amin -2
/tmp/a.txt

查找两分钟前访问过的文件
find /tmp -amin +2

查找一个文件的硬链接:
ln a.txt heihei
#ll -i
439360 -rw-r--r-- 2 root root 12 Nov 29 22:22 a.txt
439360 -rw-r--r-- 2 root root 12 Nov 29 22:22 heihei
find . -samefile a.txt
./a.txt
./heihei

指定查找的目录深度:
-maxdepth levels
-mindepth levels
find / -maxdepth 3 -a -name "ifcfg-eth0"

按正则表达式查找:
find /etc -regex ‘.*ifcfg-ens[0-9][0-9]‘



-exec -ok
#find . -name wing.txt -exec cp {}  /root/Desktop/ \;

防止被查找到的文件过多,导致内存溢出错误
 find  .  -name wing.txt | xargs  -i cp {} /root/Desktop

原文地址:http://blog.51cto.com/13939728/2164555

时间: 2024-11-10 11:49:25

linux-find查找的相关文章

Linux文件查找之find&locate

Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令find和locat,熟练使用find命令是运维人员的必经之路 二.find的用法及示例 1.find特点 查找速度略慢 精确查找 实时查找 只能搜索有读取和执行权限的目录 2.find用法 用法:find  [options]  [查找路径]  [ 查找条件]  [处理动作] 查找条件: 根据文件类型查找

linux命令---查找文件中的内容

linux命令---查找文件中的内容 [[email protected] ~]$ cat 1.txt |egrep '123456789|second'-------匹配123456789或者second的行 first line:123456789012345678901234567890123456789012345678901234567890 second line:one two three four five six seven eight nine ten [[email pro

linux下查找进程及终止进程操作的相关命令

使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程.这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的进程PID号.首先,我们需要使用linux下另外一个命令ps查找与进程相关的PID号:ps aux | grep program_filter_word1)ps a 显示现行终端机下的所有程序,包括其他用户的程序.2)ps -A 显示所有程序.3)ps c 列出程序时,显示

Linux如何查找大文件或目录总结(转)

在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法. 1: 如何查找大文件? 其实很多时候,你需要了解当前系统下有哪些大文件,比如文件大小超过100M或1G(阀值视具体情况而定).那么如何把这些大文件搜索出来呢?例如我要搜索当前目录下,超过800M大小的文件 [[email protected] u03]# pwd /u03 [[email

linux 下查找大于100M的文件

命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢? #已易读的格式显示指定目录或文件的大小,-s选项指定对于目录不详细显示每个子目录或文件的大小 du -sh [dirname|filename] 如: 当前目录的大小: du -sh . 当前目录下个文件或目录的大小: du -sh * [[email protected] var]# du -

Linux文件查找.md

Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 whereis whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始代码,二进制文件,或是帮助文件.whereis 程序还具有搜索源代码.指定备用搜索路径和搜索不寻常项的能力. 语法 whereis [-bmsu] 文件或者目录名称 参数 -b 定位可执

linux文件查找及操作

在linux下查找文件的办法最常用的就是find指令,让我们来看一下find指令如何来使用吧: find find . -name  txt             //在当前目录查找名字为txt的文件或者是文体夹 find . -type c                //字符设备 find . -type d                //目录 find /dev -type b             //块设备 find /dev -type s             //网络

Linux文件查找

Linux文件查找 Linux的基本法则之一为一切皆文件,Linux遵循FHS(Filesystem Hierarchy Standard),文件系统目录标准,FHS采用树形结构组织文件:在使用过程中,我们会遇到知道文件名却不知道文件位置的情况,或者查找某些类型的文件,此时我们需要文件查找的功能. 一.常用查找命令: Locate与finad: locate命令为非实时查找模式:非实时查找,需要根据索引查找,依赖于索引,而索引构建相当占用资源:索引的创建是在系统空闲时由系统自动进行(每天任务):

linux中查找命令find、locate、whereis、which、type区别

linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/var/lib/locatedb)文件不同,find查找磁盘空间 find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件

Linux如何查找大文件或目录总结

Linux如何查找大文件或目录总结 原帖地址:http://www.cnblogs.com/kerrycode/p/4391859.html  谢谢潇湘隐者,谢谢老大 在Linux系统中,如何去搜索一些比较大的文件呢?下面我整理了一下在Linux系统中如何查找大文件或文件夹的方法. 1 如何查找大文件 其实很多时候,你需要了解 /u01/app/oracle/oradata/prod/ 下有哪些大的数据文件,比如文件大小超过100M或1G(阀值视具体情况而定).那么如何把这些大文件搜索出来呢?