Linux下常用的find命令汇总

本文详细介绍Linux下find命令的使用方法,包括按名字、权限、属主、时间、类型、文件新旧和大小查找等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下常用的find命令汇总

Linux 下的find命令是很强大的查找命令,但花费的时间比较多。(因为find是直接在硬盘查找,如果你对硬盘比较老旧了,就得等很久了,而where is查找依赖于文件数据库搜索,优点是速度快,但是最大缺点是实时性慢)。它是将档案系统内符合 expression 的档案列出来。你可以指定档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。

find命令的格式:

find [-path……] -options [-print -exec -ok]

 path:要查找的目录路径

      ~表示$HOME目录

       . 表示当前目录(.可省略)

       / 表示根目录

myfile目录下有10个文件:

[wzb@www myfile]$ ls

目录默认文件属性为775,此处dir和dir1修改为664

drw-rw-r--. 2 wzb wzb 4096 Mar26 22:23 dir 

drw-rw-r--. 2 wzb wzb 4096 Mar26 22:23 dir1

-r-xr--r--. 1 wzb wzb    0 Mar 26 21:34 file1.doc   //此处文件权限已修改为544

-r-xr--r--. 1 wzb wzb    0 Mar 26 21:35 file2.txt  //此处文件权限已修改为544

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:35 file3.xls  //文件默认权限为664

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:35 file4.ppt

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:36 file5.doc

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:34 file.doc

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:50 test.c

-rw-rw-r--. 1 wzb wzb    0 Mar 26 21:51 world.exe

1、按名字查找:

find -name '*.txt'

1)在当前目录下查找以.txt结尾的文件。

 [wzb@www myfile]$ find -name '*.txt'

./file2.txt

(2)find-name 'file*'

在当前目录下查找以file开头的文件。

[wzb@www myfile]$ find -name'file*'

./file5.doc

./file4.ppt

./file3.xls

./file.doc

./file1.doc

./file2.txt

[wzb@www myfile]$

(3)find-name '[k-z]*'

1)在当前目录下查找以字母kz之间的文件。

[wzb@www myfile]$ find -name'[k-z]*'

./world.exe

./test.c

(4 [ ]内也可以是数字,如find -name 'file[1-5]*'

在当前目录下查找以file开头的前5的文件。

[wzb@www myfile]$ find -name'file[1-5]*'

./file5.doc

./file4.ppt

./file3.xls

./file1.doc

./file2.txt

 

2按权限查找

find –perm +文件属性(544

在当前目录下查找属性为544的文件。

(1)[wzb@www myfile]$find -perm 544

./file1.doc

./file2.txt

(2)find -perm 664(注意:目录和文件都查找到并显示出来)

./dir1

./file5.doc

./file4.ppt

./file3.xls

./file.doc

./world.exe

./test.c

./dir

(3)若只想查找属性为664的目录文件,该怎么查找呢?

[wzb@www myfile]$ find -perm664 | find -type d

./dir1

./dir

(4)若只想查找属性为664的普通文件,又该怎么查找呢?

[wzb@www myfile]$ find -perm664 | find -type f

./file5.doc

./file4.ppt

./file3.xls

./file.doc

./file1.doc

./world.exe

./test.c

./file2.txt

 

4、按属主及属组查找 

(1)find  -user root

在当前目录下查找属性为root的文件

[wzb@www code]$ find -user root

find: `./file33': Permission denied

注意:file33是一个没有任何权限的文件

(2) 查找属主是www的文件   
      $ find / -user www
  
(3)查找属主被删除的文件 
      $ find / -nouser
  
(4) 查找属组mysql的文件 
      $ find / -group file
 

(5)查找用户组被删掉的文件 
      $ find / -nogroup

4、按时间查找:

find /var –mtime  -1+1是查找1天以前被修改的文件

在var下找更改时间为1天以内的文件。

-rw-rw-r--.1 wzb wzb    6 Mar 28 05:49 file1.ppt

-r-xr--r--. 1 wzb wzb   0 Mar 26 21:35 file2.txt

-rw-rw-r--. 1 wzb wzb   0 Mar 26 21:35 file3.xls

-rw-rw-r--. 1 wzb wzb   0 Mar 26 21:35 file4.ppt

-rw-rw-r--. 1 wzb wzb   0 Mar 26 21:36 file5.doc

-rw-rw-r--. 1 wzb wzb   0 Mar 26 21:34 file.doc

--w--w--w-. 1 wzb wzb   0 Mar 26 21:50 test.c

-rw-rw-r--. 1 wzb wzb   0 Mar 26 21:51 world.exe

[wzb@wwwmyfile]$ find -mtime -1

.

./file1.ppt

 

与之类似按时间查找还有:
(1)查找一天内被访问的文件 
   $ find . -atime -1
  

(2)查找一天前被访问的文件 
   $ find . -atime +1
 
 
(3)查找一天内状态被改变的文件 
     $ find . -ctime -1 
 (4)查找一天前状态被改变的文件 
     $ find . -ctime +1 
(5)查找10分钟以前状态被改变的文件 
    $ find . -cmin +10

5、按类型查找   

 在当前目录及子目录下,查找目录文件   

 $ find . -type l –print

[wzb@www myfile]$ find -type d

.

./dir1

./dir

 

6按文件新旧查找: 
     
查找比"file5.doc"新的文件 

[wzb@www myfile]$ find . -newer "file5.doc"

.

./dir1

./file1.ppt

./world.exe

./test.c

./dir


查找比"file5.doc"旧的文件 
$ find . ! -newer " file5.doc "
查找比"file5.doc"新,"dir"旧的文件 
$ find . -newer “file5.doc '”! -newer “dir”

 

7、按文件大小查找:  
查找超过1k的文件 

[wzb@www myfile]$ find -size +1k

.

./dir1

./dir
查找小于2k的文件 
$ find . -size 2k

[wzb@www myfile]$ find -size -2k

./file1.ppt

./file5.doc

./file4.ppt

./file3.xls

./file.doc

./file1.doc

./world.exe

./test.c

./file2.txt

 查找等于3字节的文件 
$ find  -size  3c

8、执行命令     
查找del.txt并删除,删除前提示确认 
$ find  -name ' file1.doc' -ok rm {} \;

[wzb@www myfile]$ ls

dir   file1.doc  file3.xls file5.doc  test.c

dir1  file2.txt  file4.ppt file.doc   world.exe

[wzb@www myfile]$ find -name "file1.doc" -ok rm {} \;

< rm ... ./file1.doc > ? y

[wzb@www myfile]$ ls

dir   file2.txt  file4.ppt file.doc  world.exe

dir1  file3.xls  file5.doc test.c

查找test.c 并备份为hello.c 

 $ find  -name “test.c”-exec cp {} {}.bak \

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值