按创建日期降序过滤 .txt 文件

按创建日期降序过滤 .txt 文件

我创建了一个.txt文件,但现在我忘记了保存它的位置以及它的文件名。所以我的问题是:有没有方法可以.txt按创建日期的降序过滤文件?我目前正在使用 32 位 Ubuntu 12.04。

答案1

扩展@soulsource的评论,你需要使用寻找命令最基本的用法是查找机器上所有以 .txt 结尾的文件,以下命令将从根目录开始深入文件系统:

find / -type f -iname '*.txt' 

现在,如果您知道将文件保存在特定目录中,例如您的主目录,但忘记了哪个子目录,您可以通过更改路径来加快查找速度:

find ~/ -type f -iname '*.txt'

现在,您只需将|结果文件通过ls管道传输到

find ~/ -type f -iname '*.txt' | xargs ls -td1

如果你收到大量文件,你始终可以通过再次将其传输到来限制响应数量。例如,如果您只对最近的 10 条结果感兴趣,则可以使用:

find ~/ -type f -iname '*.txt' | xargs ls -td1 | head -n10

需要注意的一点find是,默认情况下它不遵循符号链接,如果像我一样,您的主目录中有几个符号链接并且也想检查它们,您需要使用-follow查找选项。

find ~/ -type f -iname '*.txt' -follow | xargs ls -td1 | head -n10

答案2

find 命令可以按修改时间进行过滤,例如

find path/to/some/directory -type f -name *.txt -mtime 5

这将显示 path/to/some/directory 中过去 5*24 小时内修改过的所有文件。它们不会按创建日期排序,但是——假设您最近没有修改太多文本文件——使用足够严格的 mtime 过滤器,返回的文件列表应该非常小。此命令不会按日期排序,而是仅有的显示最近修改的文件...

如果有必要,您可以按照 AJefferiss 的描述,将其与管道结合到 xargs ls 中来添加排序。

答案3

您可以*.txt在终端中使用以下命令查找文件并按修改日期对其进行排序终端

find /path/to/search -type f -iname '*.txt' -printf "%-.22T+ %Tx %.8TX %p\n" | sort | awk '{print $2 "\t" $3 "\t" $4}'

或者:

cd /path/to/search
find . -type f -iname '*.txt' -printf "%-.22T+ %Tx %.8TX %p\n" | sort | awk '{print $2 "\t" $3 "\t" $4}'

对于最后 10 个修改的*.txt文件使用:

find . -type f -iname '*.txt' -printf "%-.22T+ %Tx %.8TX %p\n" | sort | awk '{print $2 "\t" $3 "\t" $4}' | tail

相关内容