在 Linux 中根据访问、修改日期和时间查找和排序文件

我们已经知道如何 在特定文件夹中组织相似类型的文件 在 Linux 和类 Unix 操作系统中。 在这种方法中,我们学会了在一个文件夹中组织类似类型的文件。 换句话说,文件是根据它们的扩展名组织的。 我们不知道该文件是新文件还是旧文件。 我们只是将相同类型的文件放在一个文件夹中。 今天,在本指南中,我们将根据访问和修改日期和时间,而不是扩展名来查找和排序文件。 如果您想查找在特定日期或时间访问或修改的特定文件,那么您就在正确的轨道上。 继续阅读。

推荐下载免费备忘单:“Linux 命令行备忘单”

在 Linux 中根据访问、修改日期和时间查找和排序文件

您无需安装任何额外的应用程序即可查找和排序文件。 出于本指南的目的,我们将使用三个 Linux 命令,即 ls, 寻找种类. 这些命令是 Linux Kernel 的一部分,所以不要费心安装它们。

可能已经知道, ls 命令列出目录内容以及附加信息,例如修改或访问的日期和时间、权限、大小、所有者、组等。它将按字母顺序对给定目录的条目进行排序。 如果您没有提及目录,它将列出当前工作目录的内容。

寻找 命令用于在目录层次结构中搜索文件。

种类 命令对文本文件的行进行排序,并将所有文件的排序连接写入标准输出。

1.使用ls命令根据上次访问时间查找和排序文件

以下命令将根据上次访问时间列出文件。 最新的文件将首先列出。

$ ls -ltu

样本输出:

total 104
drwxr-xr-x 18 sk users 4096 May 3 18:02 Personal
drwxr-xr-x 3 sk users 4096 May 3 11:57 Notebooks
drwxr-xr-x 9 sk users 4096 May 3 11:57 Official
drwxrwxr-x 3 sk users 4096 May 3 11:57 en-TED
drwxr-xr-x 5 sk users 4096 May 3 11:57 Soft_Backup
drwxr-xr-x 9 sk users 4096 May 3 11:57 'VirtualBox VMs'
drwxr-xr-x 2 sk users 4096 May 3 11:57 Wallpapers
drwxr-xr-x 2 sk users 4096 May 3 11:57 Public
drwxr-xr-x 2 sk users 4096 May 3 11:57 Documents
drwxr-xr-x 2 sk users 4096 May 3 11:57 Music
drwxr-xr-x 2 sk users 4096 May 3 11:57 Videos
drwxr-xr-x 2 sk users 4096 May 3 11:56 Desktop
drwxr-xr-x 2 sk users 4096 May 3 11:56 Templates
drwxr-xr-x 5 sk users 4096 May 2 20:53 Entertainment
-rw-r--r-- 1 sk users 951 May 2 20:52 'pre code.txt'
-rw-r--r-- 1 sk users 50 May 2 20:52 file.txt
drwxr-xr-x 11 sk users 20480 May 2 20:34 Downloads
drwxr-xr-x 5 sk users 12288 May 2 20:13 Pictures

这里,

  • -u – 按访问时间排序,最新的在前

2.使用ls命令根据修改时间查找和排序文件

要根据修改时间列出文件,请运行:

$ ls -lt

这里,

  • -l – 表示长列表格式,
  • -t – 按修改时间排序,最新的在前。

样本输出:

total 104
drwxr-xr-x 11 sk users 20480 May 2 20:34 Downloads
drwxr-xr-x 5 sk users 12288 May 1 17:32 Pictures
drwxr-xr-x 9 sk users 4096 May 1 16:45 'VirtualBox VMs'
drwxr-xr-x 2 sk users 4096 Apr 24 20:30 Documents
drwxr-xr-x 2 sk users 4096 Apr 11 13:02 Desktop
-rw-r--r-- 1 sk users 951 Apr 7 20:20 'pre code.txt'
drwxr-xr-x 9 sk users 4096 Mar 27 19:31 Official
-rw-r--r-- 1 sk users 50 Mar 23 20:24 file.txt
drwxr-xr-x 2 sk users 4096 Mar 21 17:43 Videos
drwxr-xr-x 3 sk users 4096 Mar 14 16:32 Notebooks
drwxr-xr-x 2 sk users 4096 Jan 7 14:55 Music
drwxr-xr-x 18 sk users 4096 Dec 19 14:36 Personal
drwxrwxr-x 3 sk users 4096 Nov 30 01:57 en-TED
drwxr-xr-x 5 sk users 4096 Aug 20 2016 Entertainment
drwxr-xr-x 2 sk users 4096 May 11 2016 Public
drwxr-xr-x 2 sk users 4096 May 11 2016 Templates
drwxr-xr-x 2 sk users 4096 May 9 2016 Wallpapers
drwxr-xr-x 5 sk users 4096 May 4 2016 Soft_Backup

上述命令将根据修改时间对当前工作目录的文件进行排序。 最新的文件将首先显示。

要根据修改时间列出特定目录的文件,请键入:

$ ls -lt ~/Downloads/

要以相反的顺序列出文件,即首先列出最旧的文件,请使用 ‘r’ 标志如下:

$ ls -ltr

3. 使用ls命令根据上次修改时间查找和排序文件

该命令根据上次修改时间列出文件。 这意味着,此命令首先列出最近更改了任何状态信息(如所有者、组、权限、大小等)的文件。

$ ls -ltc

样本输出:

total 104
drwxr-xr-x 11 sk users 20480 May 2 20:34 Downloads
drwxr-xr-x 5 sk users 12288 May 1 17:32 Pictures
drwxr-xr-x 9 sk users 4096 May 1 16:45 'VirtualBox VMs'
drwxr-xr-x 2 sk users 4096 Apr 24 20:30 Documents
drwxr-xr-x 2 sk users 4096 Apr 11 13:02 Desktop
-rw-r--r-- 1 sk users 50 Apr 8 16:28 file.txt
-rw-r--r-- 1 sk users 951 Apr 7 20:20 'pre code.txt'
drwxr-xr-x 9 sk users 4096 Mar 27 19:31 Official
drwxr-xr-x 2 sk users 4096 Mar 21 17:43 Videos
drwxr-xr-x 3 sk users 4096 Mar 14 16:32 Notebooks
drwxrwxr-x 3 sk users 4096 Jan 18 12:36 en-TED
drwxr-xr-x 2 sk users 4096 Jan 7 14:55 Music
drwxr-xr-x 18 sk users 4096 Dec 19 14:36 Personal
drwxr-xr-x 5 sk users 4096 Aug 20 2016 Entertainment
drwxr-xr-x 2 sk users 4096 May 11 2016 Public
drwxr-xr-x 2 sk users 4096 May 11 2016 Templates
drwxr-xr-x 2 sk users 4096 May 9 2016 Wallpapers
drwxr-xr-x 5 sk users 4096 May 9 2016 Soft_Backup

这里,

  • -C – 按上次修改时间排序

4.根据日期查找和排序文件

以下命令根据上次访问的日期和时间列出文件。 最新的文件将首先列出。

$ find /home/sk/ostechnix/ -type f -printf "n%AD %AT %p" | head -n 10

样本输出:

04/27/17 15:51:16.4508342970 /home/sk/ostechnix/The Devops toolkit.pdf
04/27/17 15:51:17.1375009660 /home/sk/ostechnix/THE LINUX COMMAND LINE.pdf
04/27/17 15:51:12.9508342850 /home/sk/ostechnix/Google power search.pdf
04/27/17 15:51:10.3475009420 /home/sk/ostechnix/Docker.pdf
04/27/17 15:51:14.0108342880 /home/sk/ostechnix/Linux Shell Scripting.pdf
04/27/17 15:51:17.4208343000 /home/sk/ostechnix/WpPMaq8.jpg
04/27/17 15:51:12.7675009510 /home/sk/ostechnix/DoubleClick_Mobile_Web_Speed_Toolkit.pdf
04/27/17 15:51:01.9308342460 /home/sk/ostechnix/Ed Sheeran - Shape Of You.mp3
04/27/17 15:51:02.7341675830 /home/sk/ostechnix/tor-browser_zh/start-tor-browser.desktop

在上面的输出中,第一列显示文件的最后访问日期,第二列显示最后访问时间,第三列显示文件名。 这里,’head -n 10′ 不是数字文件。 它是输出中的条目数,包括空格。

此外,您可以使用带有“ls”命令的“sort”命令根据上次访问的月份、日期和时间列出文件,如下所示。

$ ls -l ostechnix/ | sort -k6M -k7n | head -n 10

样本输出:

total 44024
drwx------ 3 sk users 4096 Apr 27 15:51 tor-browser_zh
drwxr-xr-x 3 sk users 4096 Apr 27 15:51 Arch master
-rw-r--r-- 1 sk users 183396 Apr 27 15:51 Linux commandline cheat sheet.pdf
-rw-r--r-- 1 sk users 2031375 Apr 27 15:51 Google power search.pdf
-rw-r--r-- 1 sk users 233955 Apr 27 15:51 bash_tips.pdf
-rw-r--r-- 1 sk users 2597261 Apr 27 15:51 Docker.pdf
-rw-r--r-- 1 sk users 270623 Apr 27 15:51 sag-0.6.1.pdf.gz
-rw-r--r-- 1 sk users 3857569 Apr 27 15:51 THE LINUX COMMAND LINE.pdf
-rw-r--r-- 1 sk users 3902301 Apr 27 15:51 Ed Sheeran - Shape Of You.mp3

这里,

  • -k6M – 在输出中按月列出文件(第 6 个字段)。
  • -k7n – 在输出中按日期列出文件(第 7 个字段)。

就这样。 您现在知道如何在 Linux 中根据访问、修改时间和日期来查找和排序文件。 正如您在上面的示例中所看到的,对文件进行排序非常容易。 有关更多详细信息,请参阅每个命令的手册页。

$ man ls
$ man find
$ man sort