find命令 * 可以查找文件和命令,可以模糊查找和精确查找,查找的范围是整个Linux系统

find命令是一条五星级命令,默认到 / 下面查找,因为linux所有文件都在 / 目录下面。

格式 : find 【查找范围】【查找条件】【动作】

【查找范围】 默认根目录,也可以自己指定范围

【查找条件】 -- 选项

常用查找条件(选项)

-name : 按文件名称查找。

-inname: 按文件名称查找,不区分大小写。

-size : 按文件大小查找。

-user: 按文件属主查找。

-type: 按文件类型查找。

-perm : 按文件权限查找。

-mtime: 按文件更改时间查找,以24小时为单位。

-mmin : 按文件更改时间查找,以分钟为单位。

-maxdepth:按最大深度查找。

-newer: 按比某个文件更新的查找。

-name按名字查找

-name默认是精确查找

根据名字,查找根目录下面的hello文件。

## find 是命令

/是查找的位置

-name 是查找的条件

hello是查找的具体的名字

[root@localhost lianxi]# find / -name hello
/usr/bin/hello
/lianxi/hello
/lianxi/aa/bb/cc/dd/hello
/lianxi/aa/bb/cc/hello
/lianxi/aa/bb/hello
/lianxi/aa/hello
/wuxia/hello
/hello
/sanchuang/hello

如果想要模糊查找,可以与通配符搭配使用。

例如查找出所有以hello开头的文件,在hello后面加一个*号。

*代表任意个字符 --》个或者n个

使用通配符必须用引号将hello引起来,不然linux会将它当成一个路径。

这样就能把以hello开头的文件都找出来,

[root@localhost lianxi]# find / -name  "hello*"
/boot/grub2/i386-pc/hello.mod
/usr/bin/hello
/usr/lib/grub/i386-pc/hello.mod
/usr/lib/golang/doc/play/hello.go
/lianxi/hello
/lianxi/hello.c
/lianxi/hello.txt
/lianxi/aa/bb/cc/dd/hello
/lianxi/aa/bb/cc/hello
/lianxi/aa/bb/hello
/lianxi/aa/hello
/wuxia/hello
/jindafu/boot/grub2/i386-pc/hello.mod
/hello
/sanchuang/hello.c
/sanchuang/hello
/go/hello.go

如果想要查找出名字里面包含hello的,就用通配符*将hello包含起来

[root@localhost lianxi]# find / -name  "*hello*"
/boot/grub2/i386-pc/hello.mod
/usr/bin/hello
/usr/lib/grub/i386-pc/hello.mod
/usr/lib/golang/doc/play/hello.go
/usr/lib64/python2.7/__phello__.foo.py
/usr/lib64/python2.7/__phello__.foo.pyc
/usr/lib64/python2.7/__phello__.foo.pyo
/usr/lib64/python3.6/__phello__.foo.py
/usr/lib64/python3.6/__pycache__/__phello__.foo.cpython-36.opt-1.pyc
/usr/lib64/python3.6/__pycache__/__phello__.foo.cpython-36.opt-2.pyc
/usr/lib64/python3.6/__pycache__/__phello__.foo.cpython-36.pyc
/lianxi/hello
/lianxi/hello.c
/lianxi/hello.txt
/lianxi/aa/bb/cc/dd/hello
/lianxi/aa/bb/cc/hello
/lianxi/aa/bb/hello
/lianxi/aa/hello
/wuxia/hello
/jindafu/boot/grub2/i386-pc/hello.mod
/hello
/sanchuang/hello.c
/sanchuang/hello
/go/hello.go

-iname 按名字查找,但是不区分大小写

用-iname时候它会将所有名字等于xiaomi的文件都找出来,但是不区分大小写。

[root@localhost lianxi]# find / -iname xiaomi
/lianxi/XIAOMI
/lianxi/xiaomi
[root@localhost lianxi]#

-size 按文件大小来查找   黑洞文件 /dev/null

+1k  大于kb的文件  k要小写

-1M 小于1Mb的文件

+1G 大于1G的文件

[root@localhost lianxi]# find . -size +1k
.
./.for.sh.swp
./sc_game_v2.sh
./passwd
[root@localhost lianxi]# find . -size -1M
./chouguo.txt
./hello
./hello.c
./qwer.txt
./DAMI
./XIAOMI
./hello.txt
./dami
./luckylist.txt
./aa/bb/cc/dd/hello
./aa/bb/cc/hello
./aa/bb/hello
./aa/hello
./xiaomi
[root@localhost lianxi]# 

2> /dev/null     意思是将错误的信息就丢到黑洞文件里面去。

2>代表错误的输出重定向
/dev 是存放设备文件的目录 device 
    Linux 里每一个硬件会有一个文件和它对应,例如:鼠标,键盘,网卡,显示器,磁盘等设备
    Linux里面一切皆文件
null 是一个Linux 里的黑洞文件,任何的内容放到这个文件里都会消失,相当于一个垃圾处理站
有些东西我们不想保存到磁盘里,也不想看到,所以我们定向到/dev/null

例如: 不加黑洞文件之前

因为在/目录下面没有超过100M的文件,所以会产生报错信息。

[root@localhost lianxi]# find / -size +100M
/proc/kcore
find: ‘/proc/2719/task/2719/fd/6’: 没有那个文件或目录
find: ‘/proc/2719/task/2719/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/2719/fd/5’: 没有那个文件或目录
find: ‘/proc/2719/fdinfo/5’: 没有那个文件或目录
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/usr/lib/locale/locale-archive

现在加入黑洞文件,错误信息就全部都丢入黑洞文件 /dev/null里面了。

[root@localhost lianxi]# find / -size +100M 2>/dev/null
/proc/kcore
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/usr/lib/locale/locale-archive
[root@localhost lianxi]#

-user 根据属主来查找

因为是在当前目录下面查找的,所以只有这么多。

[root@localhost lianxi]# find . -user root
.
./.li
./.adwd
./bigfile.py
./prefix_name.sh
./hosts
./bbigfile.py
./luckygame.sh
./.for.sh.swp
./name.txt
./chouguo.txt
./unluckygame.sh
./file.txt
./hello
./hello.c
./qwer.txt
./DAMI
./XIAOMI
./1.txt
./luckyname.txt
./hello.txt
./python
./python/python-test
./python/python-test/python.py
./backup
./dami
./rm_file.sh
./luckylist.txt
./sc_game_v2.sh
./sc_game.sh
./aa
./aa/bb
./aa/bb/cc
./aa/bb/cc/dd
./aa/bb/cc/dd/hello
./aa/bb/cc/hello
./aa/bb/hello
./aa/hello
./xiaomi
./passwd

-type 根据文件类型来查找

校招题目:

说说有哪几种文件类型

f 类型为文件 file

d 类型为文件夹(目录) directory

l 类型为链接文件 link

b 类型为块设备文件 block

c 类型为字符设备文件 character

p 类型为管道文件 pipe

s 类型为socket文件

[root@localhost lianxi]# find . -type f
./bigfile.py
./prefix_name.sh
./hosts
./bbigfile.py
./luckygame.sh
./.for.sh.swp
./name.txt
./chouguo.txt
./unluckygame.sh
./file.txt
./hello
./hello.c
./qwer.txt
./DAMI
./XIAOMI
./1.txt
./luckyname.txt
./hello.txt
./python/python-test/python.py
./dami
./rm_file.sh
./luckylist.txt
./sc_game_v2.sh
./sc_game.sh
./aa/bb/cc/dd/hello
./aa/bb/cc/hello
./aa/bb/hello
./aa/hello
./xiaomi
./passwd
[root@localhost lianxi]# find . -type d
.
./.li
./.adwd
./python
./python/python-test
./backup
./aa
./aa/bb
./aa/bb/cc
./aa/bb/cc/dd

-mtime 根据更改时间来查找

-mtime以24小时为单位

例如:查找7天前修改过的文件:

find . -mtime +7 -type f

查找7天以内修改过的文件:

find . -mtime -7 -type f

-mmin 根据更改时间来查找

-mmin以分钟为单位。

 查找60分钟以内修改的文件

[root@localhost lianxi]# find . -mmin -60 
.
./qwer.txt

 查找60分钟以前修改的文件

[root@localhost lianxi]# find . -mmin +60 

-maxdepth 按照最大深度查找

-maxdepth 查找文件的时候,目录的深度
1.代表当前
2.代表下一级目录
3.下一级的下一级目录,以此类推

[root@localhost lianxi]# mkdir aa/bb/cc/dd -p
[root@localhost lianxi]# cp hello aa
[root@localhost lianxi]# cp hello aa/bb
[root@localhost lianxi]# cp hello aa/bb/cc
[root@localhost lianxi]# cp hello aa/bb/cc/dd
[root@localhost lianxi]# tree aa
aa
├── bb
│   ├── cc
│   │   ├── dd
│   │   │   └── hello
│   │   └── hello
│   └── hello
└── hello
[root@localhost lianxi]# find . -maxdepth 1 -name hello
./hello
[root@localhost lianxi]# find . -maxdepth 2 -name hello
./hello
./aa/hello
[root@localhost lianxi]# find . -maxdepth 3 -name hello
./hello
./aa/bb/hello
./aa/hello
[root@localhost lianxi]# find . -maxdepth 4 -name hello
./hello
./aa/bb/cc/hello
./aa/bb/hello
./aa/hello

【动作】

常用动作:

-exec  :将find查找的结果交给-exec 后面的命令执行

-ok

例如: 将hello文件找出来并且复制到/back 目录下

find / -name hello.c -exec cp {}  /back \;

-exec 需要执行后面的命令, execute

cp {}  /backup 执行cp命令

{  } 代表前面find找到的内容,相当于一个容器,存放前面find找到的内容

/backup 是cp到的目的地·

\; 是find命令的结束符

[root@localhost lianxi]# find /lianxi -name 11.txt -ok rm -rf {}  \;
< rm ... /lianxi/11.txt > ? y
[root@localhost lianxi]# 
命令执行后会让确认一次

多条件组合

-a (and): 逻辑与,系统默认是与,可不加,表示只有当所给的条件都满足时,寻找条件才算满足。

- o  (or): 逻辑或,只要所给的条件中有一个满足,寻找条件就算满足

-not : 逻辑非,在命令中可用 “!”表示,该运算符表示查找不满足所给条件的文件

-a 的优先级默认高,先执行逻辑与,再执行逻辑或

例如:

什么都不接时候,默认是 and
 find  . -user root -type f -size +1M -o -name "vmlinuz"
这里分成了两部分,-o前面和后面。前面三个选项默认用and连接起来。-o后面是一部分

在find里面如果想用()的话要用\来转义,不然会报错

find . -user root -type f \(-size +1M -o -name "vmlinuz*" \)

组合运用

[root@localhost lianxi]# find / -type f -name "hello*"
/boot/grub2/i386-pc/hello.mod
/usr/bin/hello
/usr/lib/grub/i386-pc/hello.mod
/usr/lib/golang/doc/play/hello.go
/lianxi/hello
/lianxi/hello.c
/lianxi/hello.txt
[root@localhost lianxi]# find / -type f -name "hello*" -size +1k
/boot/grub2/i386-pc/hello.mod
/usr/bin/hello
/usr/lib/grub/i386-pc/hello.mod
/jindafu/boot/grub2/i386-pc/hello.mod
/sanchuang/hello
[root@localhost lianxi]#
[root@localhost lianxi]# find / -type f -name "hello*" -size +1M

Linux - 命令的查找 find命令详解相关推荐

  1. linux xxx命令,linux命令ps aux|grep xxx详解

    对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大的进程查看命令. 使用该命令 可以确定有哪些进程正在运 ...

  2. linux dig命令的安装和使用详解

    linux dig命令的安装和使用详解 什么是dig命令 Dig是Domain Information Gopher的缩写,是一种DNS查找实用程序,用于探测DNS服务器并解决与DNS服务器相关的问题 ...

  3. linux中grep命令 菜鸟教程,linux grep正则表达式与grep用法详解

    需要大家牢记:正则表达式与通配符不一样,它们表示的含义并不相同 正则表达式只是字符串的一种描述,只有和支持正则表达式的工具相结合才能进行字符串处理.本文以grep为例来讲解正则表达式. grep命令 ...

  4. linux中替换命令详解,linux中sed命令字符串替换的用法详解

    Linux系统中sed命令可以将字符串批量替换,省去了很多麻烦,下面由学习啦小编为大家整理了linux系统中sed命令字符串替换的用法详解,希望对大家有帮助! linux中sed命令字符串替换的用法详 ...

  5. linux命令ps -aux|grep xxx详解

    linux命令ps -aux|grep xxx详解 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程, 而ps命令(Process Status)就是最基本同时也是非常强大 ...

  6. linux服务器杀毒软件命令,悬镜Linux服务器卫士-木马查杀详解

    原标题:悬镜Linux服务器卫士-木马查杀详解 今天悬镜小编详细给大家讲解下悬镜管家中-木马查杀功能的使用情况. 对于WebShell的理解,"Web"显然需要服务器开放Web服务 ...

  7. 编程实现linux中的who命令功能,Linux who命令简介及使用方法详解

    玩蛇网推荐图文教程:python 列表 本文是关于Linux who命令简介及使用方法详解一文.如果你是一名系统管理员,可能需要需要在一个特定的时间点都有谁活跃在系统上.以便必须严密监视我们的服务器. ...

  8. linux cp -r 参数,Linux系统中cp命令的参数及用法详解

    Linux系统中cp命令主要是用来复制文件或者目录.下面由学习啦小编为大家整理了Linux系统中cp命令的参数及用法详解的相关知识,希望对大家有帮助! Linux系统中cp命令的参数及用法详解:参数说 ...

  9. linux添加目录命令权限,linux chmod命令设置目录/文件权限详解

    首页 > Linux教程 > 常用命令 > chmod 文件权限 linux chmod命令设置目录/文件权限详解 linux中chmod命令用于改变系统文件或目录的访问权限,用数字 ...

  10. python调用adb shell命令_Python之使用adb shell命令启动应用的方法详解

    Python之使用adb shell命令启动应用的方法详解 一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具 ...

最新文章

  1. C++中的内联函数inline
  2. 一些在数字化转型的方面的公司和例子
  3. 云炬随笔20211012(2)
  4. SpringCloud熔断器介绍
  5. Couchbase 2.0归类视图简介
  6. Python Web框架Tornado的异步处理代码演示样例
  7. angular8多选框实现点击整行任意位置<tr>就可以选中多选框
  8. ☆【UVA - 624 】CD(dp + 0-1背包 + 记录路径)
  9. MyEclipse导入项目后 js文件报错
  10. koa mysql 按钮级权限_Vue要做权限管理该怎么做?控制到按钮级别的权限怎么做?...
  11. 【时间序列分析】01. 时间序列·平稳序列
  12. idea打包jar,并运行
  13. 关于单链表结构体定义结点时 LNode *LinkList的理解
  14. catia切割红色框框_如何在CATIA中对零件的实体进行切割,详细始末
  15. HTML5 input类型 range滑动条 介绍与使用
  16. iPhone真机测试Crash信息分析
  17. Miracle密码算法开源库(十二)分析 :mrflsh3.c
  18. Excel怎么快速截取图片?
  19. Snowflake Snow Snowflakes
  20. 解锁三星bl锁有几种方法_如何判断三星手机bootloader是否解锁_免费解锁BL的3个方法...

热门文章

  1. oracle 10046事件查看,使用oracle的10046事件跟踪SQL语句
  2. IDEA中同时打开多个项目
  3. 传字节跳动将进军云计算IaaS,“狼来了”?
  4. 怎么导出mysql数据库注释_数据库基础:如何查看并导出数据表中字段的注释信息...
  5. 如何手动运行dll文件(转)
  6. 模型压缩:量化、剪枝和蒸馏
  7. UnityWebRequest通信
  8. 水果编曲FL Studio 21强化来袭!FL Studio21制作人版下载及切换中文教程
  9. Windows使用SCHTASKS 命令执行定时任务
  10. vue计算属性传参(computed)