Linux如何用find命令查找文件

本文详细介绍Linux下find命令的使用方法,包括如何通过文件名、权限、时间、大小及类型等多种方式查找文件。此外还提供了丰富的实际应用场景示例,帮助读者快速掌握find命令的高级用法。

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

用途
find命令用于在指定目录下查找文件。

全称

参数

-name :后跟需要匹配的文件名模式,需要使用引号引起来

下面是一些简单的示例查找:(~表示$HOME目录)

1.查找当前$HOME下’.log’结尾的文件

find ~ –name “*.log” –print

2.当前目录与子目录下查找所有’.log’结尾的文件

find . –name “*.log” –print

3.当前目录与子目录下查找文件名以一个大写字母开头的文件

find . –name “[A-Z]” –print

4.在/etc目录下查找文件名以host开头的文件

find /etc –name “host*” –print

5.在当前目录查找文件名以一个小写字母开头,最后是4到9加上.txt结束的文件

find . –name “[a-z]*[4-9].txt” –print

find file by name

-iname :根据文件名查找文件,不区分大小写

1.查找文件名为.log结尾的文件,不区分大小写

find . –iname “*.log” –print

-perm :后跟文件权限,按文件权限模式来查找文件

1.查找当前目录下文件权限为777的文件

find . –perm 777 –print

how to Find file in Linux

-prune :忽略某个目录

1.希望在tmp下查找,但不希望在/tmp/tmp1下查找

find test –path “/tmp/tmp1” –prune –o –print

2.希望在tmp下查找,但不希望在/tmp/tmp1、/tmp/tm2、/tmp/tmp3等多个文件夹下查找

find test (–path tmp/tmp1 –o –path tmp/tmp2 –o –path tmp/tmp2 ) –prune –o –print

-user与nouser :根据文件属主查找与查找属主账户已经被删除的文件

1.查找文件属主为qinys的所有文件

find ~ –user qinys –print

2.查找删除用户Tom的文件

find /home –nouser –print

-group与nogroup :根据文件属于的用户组查找与查找属用户组已经被删除的文件

1.查找文件属主为qinys的所有文件

find ~ –group gp1 –print

2.查找删除用户Tom的文件

find /home –nogroup –print

-mtime\atime\ctime :根据更改时间或者访问时间等查找文件

1.在根目录下查找更改时间在5日以内的文件

find / –mtime -5 –print

2.查找/home目录下3日以前的文件

find / –mtime +3 –print

10 Linux find exec examples

-newer :查找更改时间比某个文件新但另外一个文件旧的所有文件

语法:new_file_name ! old_file_name

其中!是逻辑非符号

1.查找更改时间比文件a.log新,但比文件b.log旧的文件(假如现在是在目录/home下)

find –newer a.log ! -newer b.log

2.查找更改时间比tmp.log新的文件

find . –newer tmp.log

-size :根据文件大小来查找文件(这里的文件长度既可以使用块来计量,也可以使用字节来计量)

1.查找当前目录下文件长度大于1M字节的文件

find . –size +1000000c –print

2.在目录/home下查找文件长度恰好为100字节的文件

find . –size 100c –print

3.在当前目录下查找长度超过10块的文件(一块等于512字节)

find . –size +10 –print

-type :查找某一类型的文件,诸如:

b - 块设备文件。

d - 目录。

c - 字符设备文件。

p - 管道文件。

l - 符号链接文件。

f - 普通文件。

案例
1.在目录中查找更改时间在6日以前的文件并删除他们(注:今天是20190109)

从上图我们可以看出,符合查找的文件test.sh已经被删除

2.在目录中查找更改时间在1日以前后缀为.log的文件并删除他们,删除时候提示

20 advanced Linux find Examples
find exec rm command to delete files
find files in linux with find command examples

Linux中,find命令用于查找文件和目录。它是一个非常有用的工具,可以根据不同的条件来搜索文件。与grep命令不同,find命令可以递归地搜索整个文件系统。 要使用find命令查找文件,可以使用以下语法: ``` find <路径> <选项> <表达式> ``` 其中,路径指定要搜索的目录或文件,选项用于指定搜索的条件,表达式用于指定要执行的操作。 以下是一些常用的选项和表达式: - `-amin -10`:查找在系统中最后10分钟内被访问过的文件。 - `-atime -2`:查找在系统中最后48小时内被访问过的文件。 - `-empty`:查找在系统中为空的文件或文件夹。 - `-group cat`:查找属于group为cat的文件。 - `-mmin -5`:查找在系统中最后5分钟内被修改过的文件。 - `-mtime -1`:查找在系统中最后24小时内被修改过的文件。 - `-user fred`:查找属于用户fred的文件。 - `-size 10000c`:查找大于10000000字节的文件(c表示字节,w表示双字,k表示KB,M表示MB,G表示GB)。 - `-size -1000k`:查找小于1000KB的文件。 请根据您的需求选择合适的选项和表达式来使用find命令进行文件查找。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [linux下快速查找文件](https://blog.youkuaiyun.com/weixin_42199791/article/details/108726422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Linux命令查找文件find](https://blog.youkuaiyun.com/cnds123321/article/details/124970979)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值