当前位置:首页 > 学习资料 > 知识积累

find过去式和过去分词

时间:2020-03-21 作者:DMW 字数:2554字

在Linux环境中,`find`命令是一个非常强大的工具,它允许用户在指定的目录结构中搜索文件。我们可以使用它来查找符合特定条件的文件,如名称、类型、大小、时间戳等,并且可以对找到的文件执行各种操作。

一、`find`命令的基本结构

`find`命令的基本结构如下:

```bash

find [path] [expression]

```

其中,`path`是你要开始搜索的目录,而`expression`是一个或多个用来指定搜索条件的参数。

二、`find`命令的过去式和过去分词

1. 过去式 (`-newer`)

`find`命令的过去式通常用于查找在某个时间点之后修改过的文件。这可以通过`-newer`选项配合时间标记来实现。例如,要查找在过去一天内修改过的文件,可以使用:

```bash

find /path/to/directory -newermt "1 day ago"

```

这里的`-newermt`选项指定了一个时间范围, `"1 day ago"`表示一天前。`m`表示按修改时间(-mtime),而`t`表示提供的时间范围。

2. 过去分词 (`-ok`和`-exec`)

过去分词通常与`-ok`或`-exec`选项一起使用,允许你在找到匹配的文件后执行一个命令。这两个选项的主要区别在于如何处理找到的文件。

- `-ok`会在执行命令前询问确认,这对于避免误操作非常有用;

- `-exec`则直接执行命令,不进行确认。

例如,要删除一周前的日志文件,并在删除前确认:

```bash

find /var/log -name ".log" -ok rm {} \;

```

或者,要统计过去一周每个用户的登录次数:

```bash

find /var/log/secure -name "login" -exec grep -c "sshd:" {} \;

```

这里需要注意的是,在使用`-exec`选项时,命令的最后需要加上`\;`来表示命令的结束。

三、综合示例

下面是一个综合示例,演示如何查找在过去7天内被访问且文件大小大于10MB的所有文件,并输出它们的详细信息:

```bash

find /path/to/search -atime -7 -size +10M -exec ls -l {} \;

```

这个命令将会在`/path/to/search`目录下查找在过去7天内被访问且文件大小大于10MB的所有文件,并且为每个找到的文件显示详细的权限、大小、所有者、组、修改日期和文件名。

四、结论

通过上述内容,我们可以看到`find`命令的强大之处不仅在于它的搜索能力,还在于它能够与其他命令结合起来,形成强大的数据处理流程。熟练掌握`find`命令的过去式和过去分词,将极大地提升我们作为Linux用户或管理员的工作效率。