find 命令练习

这篇博客详细介绍了在Linux环境中使用`find`命令进行文件查找的各种用法,包括根据文件属主、后缀、大小、时间等多种条件进行精确筛选。还涵盖了删除旧文件、查找特定权限设置的文件等高级操作,对于系统管理员和开发者来说是极其实用的技能。

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

1.找出/tmp目录下,属主不是root,且文件名不以f开头的文件

   find /tmp/ -nouser root -a ! -name f*

2.查找/etc/目录下,所有.conf后缀的文件

find /etc/ -name *.conf

3.查找/var目录下属主为root,且属组为mail的所有文件

find /var/ -user root -group mail

4.查找/var目录下7天以前,同时属主不为root,也不是postfix的文件

find  /var/ ! -user root -a ! -user mail

5.查找/etc目录下大于1M且类型为普通文件的所有文件

 find /etc/ -type f -size +1M

6.查找/etc目录下所有用户都没有写权限的文件

find /etc/ -type f -perm 555

7.查找/目录下最后创建时间是3天前,后缀是*.log的文件

find / -type f -mtime +3 -name '*.log'

8.查找/目录下文件名包含txt的文件

find / -type f -name '*txt*'

9.查找/目录下属主是oldboy并且属组是oldboy的文件

 find / -type f ! -user root -a ! -group root 

10.查找/目录下属主是oldboy但是属组不是oldboy的文件

 find / -type f -user root -a ! -group root

11.查找/目录下属主是oldboy或者属主是oldgirl的文件

 find / -type f -user root -o -group root

12.查找/tmp目录下属主既不是oldboy,也不是oldgirl的文件

 find /tmp/ -type f ! -user oldboy ! -user oldgirl 

13.查找/var/log目录下7天以前的文件

 find /var/log/ -type f -mtime +7 -exec rm -f {} \;

13.查找/tmp目录下15天以前的文件删除

find /tmp/ -type f -mtime +15 -exec rm -f {} \;

15.查找/home目录下,类型是目录的,并且属主是oldboy的目录

 find /home -type d -mtime +5 -user jack

16.查找/var/log下大于100kb且以log结尾的所有文件

find /var/log/ -size +100k -name '*log'

17.查找tmp目录下所属组group1,所属主user1的目录ty

find /tmp/ -type d -group group1 -user user1

18.同时查找根目录下名为1.txt,2.txt的文件和名字带a的目录

find / -type d -name "*a*" -o -type f -name "[1,2].txt"

19.查找/tmp目录下所有文件并删除

 find /tmp/* -delete

find只查找当前目录,不查找子目录的方法
在这里插入图片描述

### Linux `find` 命令使用指南 `find` 是 Linux 系统中一个功能强大的命令,用于在指定目录及其子目录中查找文件或目录。它支持多种条件和操作,可以满足复杂的查找需求[^1]。 #### 基本语法 `find` 的基本语法如下: ```bash find <路径> <表达式> <操作> ``` - `<路径>`:指定要搜索的目录路径。默认情况下,如果省略路径,则会在当前目录及其子目录中进行递归查找。 - `<表达式>`:定义查找的条件和规则,例如文件名、类型、大小、时间戳等。 - `<操作>`:对找到的文件执行的操作,例如打印结果、删除文件等。 #### 示例代码 以下是一些常见的 `find` 命令示例: 1. **按名称查找文件** 查找名为 `example.txt` 的文件: ```bash find /path/to/search -name "example.txt" [^1] ``` 2. **按类型查找文件** 查找所有普通文件(`-type f`)或目录(`-type d`): ```bash find /path/to/search -type f [^1] ``` 3. **按用户查找文件** 查找属于用户 `ixdba` 的文件: ```bash find /path/to/search -user ixdba [^3] ``` 4. **按修改时间查找文件** 查找最近两天内未被修改的文件: ```bash find /path/to/search -mtime +2 [^3] ``` 5. **排除特定路径** 排除 `test/usr/bin` 路径下的文件: ```bash find test/ -path "test/usr/bin" -prune -o -print ``` 6. **结合多个条件** 查找名为 `main.c` 且属于用户 `ixdba` 的普通文件: ```bash find test/ -name "main.c" -user ixdba -type f ``` 7. **执行操作** 对找到的文件执行删除操作: ```bash find /path/to/search -name "*.tmp" -delete ``` #### 注意事项 - 使用 `-prune` 选项可以避免搜索某些特定路径。 - 如果需要对系统文件进行操作,请确保具有足够的权限(如 `sudo` 权限)。 - 在测试环境中练习复杂命令,以避免误删或误改重要文件。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值