在Linux中列出最后五个修改的文件
Contents
1. 概述
我们在 Linux 中使用ls 命令列出我们的文件和文件夹。我们可以添加选项来显示更多或更少的细节。它还允许我们根据上次修改时间对文件进行排序。
一个常见的用例是我们想要最后修改的五个文件。不幸的是,单独的ls不能限制它的输出。在本教程中,我们将使用 ls以及 head 和tail 来完成此操作。
本文中的示例都在 bash 中进行了测试,但也应该可以在其他 shell 中运行。
2. 列出最后修改的文件
假设我们有一个目录,其中包含十个名为file-1.txt、file-2.txt直到file-10.txt的文件。它们是按相同的顺序创建的。使用*ls -t,*我们可以按最后修改时间列出它们:
$ ls -t1
file-10.txt
file-9.txt
file-8.txt
file-7.txt
file-6.txt
file-5.txt
file-4.txt
file-3.txt
file-2.txt
file-1.txt
正如预期的那样,这将按照我们创建文件的相反顺序打印文件。请注意,我们还向ls添加了1作为参数,我们将每个文件放在自己的行上。
3. 使用head
现在要将结果限制为仅最后修改的五个文件,我们通过head管道输出ls:
$ ls -t1 | head -5
file-10.txt
file-9.txt
file-8.txt
file-7.txt
file-6.txt
4. 使用tail
当我们想知道哪些文件最近最少被修改时,我们使用tail来获取最后五个结果:
$ ls -t1 | tail -5
file-5.txt
file-4.txt
file-3.txt
file-2.txt
file-1.txt
5. 逆序
使用尾部来获取最后五个结果可能不会给我们想要的结果。我们可能想首先列出最旧的文件。让我们将r添加到ls的参数中以应用反向排序:
$ ls -tr1 | tail -5
file-6.txt
file-7.txt
file-8.txt
file-9.txt
file-10.txt
这以创建的相反顺序打印了最后修改的文件。ls的排序是在输出通过tail管道传输之前完成的。我们必须用head替换最后一个命令才能得到我们想要的结果:
$ ls -tr1 | head -5
file-1.txt
file-2.txt
file-3.txt
file-4.txt
file-5.txt