Linux命令之find

1.find命令使用规范:find path -option

find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

2.-option属性类型

2.1.根据文件名称name查找:find /Users/gaoxinfu/open-source/redis-unstable/ -name server.h

localhost:redis-5.0.5 gaoxinfu$ find /Users/gaoxinfu/open-source/redis-unstable/ -name server.h 
/Users/gaoxinfu/open-source/redis-unstable//src/server.h
localhost:redis-5.0.5 gaoxinfu$ 

当然我们查询的数据可以根据正则表达式去匹配文件

localhost:redis-unstable gaoxinfu$ find /Users/gaoxinfu/open-source/redis-unstable/ -name server*
/Users/gaoxinfu/open-source/redis-unstable//tests/support/server.tcl
/Users/gaoxinfu/open-source/redis-unstable//src/server.c
/Users/gaoxinfu/open-source/redis-unstable//src/server.h
localhost:redis-unstable gaoxinfu$ 

2.2.根据文件类型type查找:

2.2.1.列出文件:find /Users/gaoxinfu/demo-linux/ -type f

列出当前目录以及及其子目录下的所有文件(不包含文件夹)

localhost:demo-linux gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux
localhost:demo-linux gaoxinfu$ ls -la
total 0
drwxr-xr-x   4 gaoxinfu  staff   128  3 21 20:45 .
drwxr-xr-x@ 99 gaoxinfu  staff  3168  3 21 20:42 ..
drwxr-xr-x   5 gaoxinfu  staff   160  3 21 20:44 a
drwxr-xr-x   2 gaoxinfu  staff    64  3 21 20:45 b
localhost:demo-linux gaoxinfu$ cd a/
localhost:a gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux/a
localhost:a gaoxinfu$ ls -la
total 0
drwxr-xr-x  5 gaoxinfu  staff  160  3 21 20:44 .
drwxr-xr-x  4 gaoxinfu  staff  128  3 21 20:45 ..
-rw-r--r--  1 gaoxinfu  staff    0  3 21 20:44 test.txt
-rw-r--r--  1 gaoxinfu  staff    0  3 21 20:44 test1.txt
-rw-r--r--  1 gaoxinfu  staff    0  3 21 20:44 test2.txt
localhost:a gaoxinfu$ cd ../b
localhost:b gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux/b
localhost:b gaoxinfu$ ls -la
total 0
drwxr-xr-x  2 gaoxinfu  staff   64  3 21 20:45 .
drwxr-xr-x  4 gaoxinfu  staff  128  3 21 20:45 ..
localhost:b gaoxinfu$ cd ..
localhost:demo-linux gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux

使用相对路径查找:find . -type f

localhost:demo-linux gaoxinfu$ find . -type f
./a/test1.txt
./a/test2.txt
./a/test.txt

使用绝对路径查找:find /Users/gaoxinfu/demo-linux/ -type f

localhost:demo-linux gaoxinfu$ find /Users/gaoxinfu/demo-linux/ -type f
/Users/gaoxinfu/demo-linux//a/test1.txt
/Users/gaoxinfu/demo-linux//a/test2.txt
/Users/gaoxinfu/demo-linux//a/test.txt
localhost:demo-linux gaoxinfu$ 

2.2.2.列出文件夹:find /Users/gaoxinfu/demo-linux/ -type d

localhost:demo-linux gaoxinfu$ find /Users/gaoxinfu/demo-linux/ -type d
/Users/gaoxinfu/demo-linux/
/Users/gaoxinfu/demo-linux//a
/Users/gaoxinfu/demo-linux//b
localhost:demo-linux gaoxinfu$ 

2.3.根据时间查找:

2.3.1.根据文件创建时间ctime查找.:find . -ctime -1

将目前目录及其子目录下所有最近 1 天内创建过的文件夹或文件列出:find . -ctime -1

localhost:demo-linux gaoxinfu$ find . -ctime -1
.
./a
./a/test1.txt
./a/test2.txt
./a/test.txt
./b
localhost:demo-linux gaoxinfu$ 

2.3.2.根据文件更新时间mtime查找.:find . -mtime -1

将目前目录及其子目录下所有最近 1 天内更新过的文件夹或文件列出:find . -ctime -1

localhost:demo-linux gaoxinfu$ find . -mtime -1
.
./a
./a/test1.txt
./a/test2.txt
./a/test.txt
./b
localhost:demo-linux gaoxinfu$ 

2.4.根据文件大小查找:

-size n

2.4.1.查看文件大于1k的文件:find . -size 0

localhost:a gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux/a
localhost:a gaoxinfu$ ls -la
total 16
drwxr-xr-x  5 gaoxinfu  staff   160  3 21 21:23 .
drwxr-xr-x  4 gaoxinfu  staff   128  3 21 20:45 ..
-rw-r--r--  1 gaoxinfu  staff  1948  3 21 21:23 test.txt
-rw-r--r--  1 gaoxinfu  staff    24  3 21 21:23 test1.txt
-rw-r--r--  1 gaoxinfu  staff     0  3 21 20:44 test2.txt

查找0k的文件

localhost:demo-linux gaoxinfu$ find . -size 0
./a/test2.txt
localhost:demo-linux gaoxinfu$ 

2.4.2.查看文件大于1k的文件:find . -size +1k

localhost:a gaoxinfu$ cd ..
localhost:demo-linux gaoxinfu$ pwd
/Users/gaoxinfu/demo-linux
localhost:demo-linux gaoxinfu$ find . -size +1k
./a/test.txt
localhost:demo-linux gaoxinfu$  

2.5.不同类型可以混合使用:find . -ctime -1 -type f

查找创建时间1天之内,类型为文件的

localhost:demo-linux gaoxinfu$ find . -ctime -1 -type f
./a/test1.txt
./a/test2.txt
./a/test.txt
localhost:demo-linux gaoxinfu$ 

2.6.对查找完的结果进行操作:find . -size 0 -exec ls -la {} ;

2.6.1.列出文件大小为0的文件详情:find . -size 0 -exec ls -la {} ;

localhost:demo-linux gaoxinfu$ find . -size 0 
./a/test2.txt
localhost:demo-linux gaoxinfu$ find . -size 0 -exec ls -la {} \;
-rw-r--r--  1 gaoxinfu  staff  0  3 21 20:44 ./a/test2.txt
localhost:demo-linux gaoxinfu$ 

2.6.1.find 后面的-exec command {} \ 语句说明

command命令的终止,使用 ';' (分号)来判定,在后面必须有一个 ';'
'{}',使用{}来表示文件名,也就是find前面处理过程中过滤出来的文件,用于command命令进行处理前面过滤的文件 命令操作
特别强调,对于不同的系统,直接使用分号;可能会有不同的意义, 使用转义符 '\'在分号';'前一起使用明确说明 ,

3.附:查看文件目录比较大的文件夹和文件

du -h --max-depth=1 /home/*

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东山富哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值