按访问时间对目录中的文件进行排序,忽略其中的子集

按访问时间对目录中的文件进行排序,忽略其中的子集

有时我会下载一些文件到一个目录中d。在一段时间内,下载了很多文件,我尝试按照从最旧到最新的下载顺序查看它们。

我认为顺序并不那么重要,但是我以其他方式访问的文件(例如打开pdf我发现有趣的文件)而不是“下载时间”可能会改变顺序。

我使用了命令:

$ ls -rtlu

但这不是我想要的,因为很快下载的视频被大约 100 个其他文件分开,我最近对它们没有表现出任何兴趣。并且它们在输出中都具有相同的访问时间Feb 11 16:44。第一个视频的下载地址为Feb 11 16:28,第二个视频的下载地址为Feb 11 16:45

我可以更正输出以根据访问时间列出文件,但忽略(或删除)我不使用的文件吗?

例如找出访问它们的内容(我认为这可能是我最近安装的审计应用程序)

答案1

也许ls -rtlc会做你想做的事。它按 inode 更改时间 (ctime) 排序。只要文件的任何内容发生变化(访问时间除外),即执行除读取以外的任何操作都会更改 ctime(创建、写入、移动、更改属性等),inode 更改时间就会发生变化。因此,只要您没有移动文件或更改其权限,ctime 就应该仍然是下载时间。

如果下载时间不是你想要的那么我担心你运气不好。不记录哪个进程访问了文件。无论哪个应用程序读取该文件,文件的访问时间都会在每次读取时更新(或在现代 Linux 系统上的某些读取中,牺牲性能便利性)。使用 PDF 阅读器阅读与使用审核或索引应用程序阅读之间没有区别。

如果您想知道最近查看了哪些文件,则可以检查文件查看器本身是否保留其打开的文件的历史记录。许多 GUI 程序确实保留了最近打开的文件的列表,但它们通常不提供简单的编程访问。

如果您从命令行调用查看器,请尝试您的 shell 历史记录。根据您配置 shell 的方式,其历史记录可能完整也可能不完整,并且可能带有时间戳也可能不带有时间戳。

相关内容