|
通常,您无法找出到底是谁 对文件进行了最后的访问或修改,因为在 UNIX 中不大容易获得这种信息,但通过将搜索限制为您的 home 目录树中包含的文件,您可以仅查看个人的文件。您还可以对搜索进行限制,以便仅搜索您正在监视或使用的特定项目目录中的文件。
find 实用程序有几个标志,可以用来根据时间定位文件,如表 1 中所列举的。目录不是常规文件,但是在列出目录内容或将其作为当前工作目录时,对其进行了访问,所以需要在搜索中使用否定和 -type 标志排除它们。
表 1. find 实用程序的一些标志
标志 描述 -daystart 这个标志表示从某天凌晨开始。 -atime 最后访问该文件的时间,用天数表示。 -ctime 最后更改该文件状态的时间,用天数表示。 -mtime 最后修改该文件的时间,用天数表示。 -amin 最后访问该文件的时间,用分钟数表示。(并不是在所有的实现中都可用。) -cmin 最后更改该文件状态的时间,用分钟数表示。(并不是在所有的实现中都可用。) -mmin 最后修改该文件的时间,用分钟数表示。(并不是在所有的实现中都可用。) -type 这个标志描述了文件的类型,如 d 表示目录。 -user X 文件属于用户 X。 -group X 文件属于组 X。 -newer X 文件比文件 X 更新。
下面介绍了如何列出您的 home 目录树中、在整整一个小时之前经过修改的所有的文件:
$ find ~ -mmin 60 \! -type d
为标志给定一个负值,表示要匹配该数值或更近的。例如,下面介绍了如何列出您的 home 目录树中、从一个小时之前到现在经过修改的所有的文件:
$ find ~ -mmin -60 \! -type d
并非所有的 find 实现都支持 min 标志。如果您的 find 不支持,那么您可以使用 touch 创建一个虚拟文件,它的时间戳比要找的文件早,然后使用 -newer 标志搜索比它更新的文件:
$ date Mon Oct 23 09:42:42 EDT 2006 $ touch -t 10230842 temp $ ls -l temp -rw-r--r-- 1 joe joe 0 Oct 23 08:42 temp $ find ~ -newer temp \! -type d
特殊的 -daystart 标志,当与任何日期选项一起使用时,可以度量从当天凌晨开始(而不是 24 小时以前)到命令执行的时刻。下面的命令尝试列举存在于系统中的任何位置、从当天凌晨到现在访问过的所有的文件:
$ find / -user `whoami` -daystart -atime -1 \! -type d
类似地,您可以列出 home 目录树中、今天修改 的所有文件:
$ find ~ -daystart -mtime -1 \! -type d
为各种时间标志赋于不同的值,可以更改搜索时间。您还可以对这些标志进行组合。例如,您可以列出 home 目录树中、从七天之前到现在经过访问和 修改的所有的文件:
$ find ~ -daystart -atime -7 -mtime -7 \! -type d
您还可以根据特定日期或时间范围(以天或分钟进行度量)查找文件。要完成该任务,通常可以使用 touch 创建一个或多个虚拟文件,如前所述。
共6页: 上一页 [1] 2 [3] [4] [5] [6] 下一页
|