如何在 Linux 中列出最近修改的五个文件?
在 Linux 中,出于各种原因,例如故障排除或审计目的,通常需要找出最近修改的文件。列出最近修改的五个文件是常见的需求,可以使用各种 Linux 命令来实现。在本文中,我们将探讨一些在 Linux 中列出最近修改的五个文件的方法。
注意 - Linux 命令区分大小写。
使用 ls 命令
ls 命令是 Linux 中最常用的命令之一,用于列出文件和目录。我们可以使用 ls 命令来列出按修改时间排序的目录中的文件,使用 -t 选项。然后,我们可以使用“head”命令显示列表中的前五个文件。以下命令列出当前目录中最近修改的五个文件:
$ ls -lt | head -n 6
输出
total 31654651 -drwx-r--r-- 7 user root 1.2K 11 Dec 11:22 linuxfile.py -rw-r--r-- 5 user root 2.7M 10 Dec 15:26 script-linux.pdf -rw-r--r-- 1 user root 9.2M 9 Dec 16:21 win_scp.pdf -rw-r--r-- 4 user root 502K 8 Dec 10:20 class1.pdf -rw-rw-rw- 1 user root 2.0M 5 Dec 22:06 script23.jpg
-l 选项以长列表格式显示文件,包括文件权限、所有权、大小和修改时间。-t 选项按修改时间降序排列文件,最近修改的文件位于顶部。head 命令显示前六行,包括列标题和最近修改的五个文件。
现在我们将了解如何使用“sort”命令列出所有最近修改的五个文件。如下所示,我们需要提供目录的路径,并使用 sort 关键字与 tail 一起获取最近修改的五个文件:
$ find /home/cg/root/ -type f -printf '%T@\t%p
' | sort -n | tail -5
输出
1684171184.3445822090 /home/cg/root/6462638544588/main.py 1684171184.7965797450 /home/cg/root/6462695907cd6/main.py 1684171186.4405707830 /home/cg/root/646264dd4a983/main.lua 1684171186.9005682750 /home/cg/root/64625da89eee4/main.lua 1684171188.9325571980 /home/cg/root/6462694c393df/main.pl
使用 find 命令
find 命令是 Linux 中另一个有用的命令,用于根据各种条件(例如名称、大小和修改时间)搜索文件和目录。我们可以使用 find 命令搜索目录及其子目录中所有在过去 24 小时内修改的文件,使用 -m 时间选项。然后,我们可以使用 head 命令显示列表中的前五个文件。以下命令列出当前目录及其子目录中最近修改的五个文件:
$ find . -type f -mtime -1 -print0 | xargs -0 ls -lt | head -n 6
输出
2494345 4 drwxr-xr-x 3 root root 496 Dec 20 12:55 /root/home/shell.py 2490782 4 -rw-r--r-- 1 root root 418 Dec 8 03:54 /root/home/sh/remote.sh 2435566 4 drwxr-xr-x 3 root root 4096 Dec 20 12:54 /root/home/shell3.sh 2494508 4 -rw-r--r-- 1 root root 436 Dec 20 12:54 /root/home/script/test3/sh 2344324 4 drwxr-xr-x 6 root root 4096 Dec 20 12:53 /root/home/test.py
find 命令搜索当前目录 (.) 及其子目录中的所有文件 (-type f),这些文件在过去 24 小时内 (-m time -1) 被修改,并使用空字符终止其名称 (-print 0)。x args 命令从 find 读取以空字符分隔的文件名列表,并将它们作为参数传递给 ls 命令,该命令按修改时间对文件进行排序,并以长列表格式 (-lt) 显示它们。head 命令显示前六行,包括列标题和最近修改的五个文件。
现在我们将了解如何使用“stat”命令列出所有最近修改的五个文件。如下所示,我们需要提供目录的路径,并使用 sort 关键字与 head 一起获取最近修改的五个文件:
$ find /home/cg/root -type f -exec stat --format '%Y %n' {} + | sort -nr | head -5
输出
1684172257 /home/cg/root/646267076a666/demo.m 1684172255 /home/cg/root/64626d0533a41/testing.txt 1684172255 /home/cg/root/646267bba8bdf/main.pl 1684172254 /home/cg/root/646267eb29beb/demo.m 1684172250 /home/cg/root/64626d8526584/main.lua
结论
在本文中,我们探讨了两种在 Linux 中列出最近修改的五个文件的方法。ls 命令是在目录中列出最近修改的文件的一种简单有效的方法。find 命令是根据各种条件(包括修改时间)搜索文件的一种更强大、更灵活的方法,而 stat 命令则提供了详细的视图。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP