文章目录
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/*