如何在Linux中根据修改日期和时间查找和排序文件

通常,我们习惯在我们的系统上以文件的形式保存大量信息。 一些,隐藏文件,一些保存在一个单独的文件夹中,为了我们的易于理解创建,而一些是它是。 但是,这整个东西填满我们的目录; 通常桌面,使它看起来像一团糟。 但是,当我们需要搜索在这个巨大的集合中的特定日期和时间修改的特定文件时,问题出现。

在Linux中按日期和时间查找和排序文件

喜欢GUI的人可以使用文件管理器找到它,文件管理器以长列表格式列出文件,使得很容易找出我们想要的,但那些习惯于黑屏的用户,或者甚至任何在没有GUI的服务器上工作的用户想要一个简单的命令或一组命令,可以缓解他们的搜索。

Linux的真正美丽在这里显示,因为Linux有一组命令,如果单独使用或一起使用可以帮助搜索文件,或根据文件的名称,修改日期,创建时间,甚至任何过滤器,你可以想到申请得到你的结果。

在这里,我们将通过检查一组可以帮助整理文件,甚至是按日期时间的文件列表命令的推出了Linux的真正实力。

Linux实用程序在Linux中排序文件

一些基本的Linux命令行实用程序,只是足够的基础上日期时间排序的目录有:

ls命令

LS -列出目录的内容,该实用程序可以列出的文件和目录,甚至可以列出关于他们的所有状态信息,包括:修改或访问,权限,大小,所有者,组等的日期和时间

我们已经介绍在Linux ls命令,许多文章和排序命令 ,可以在下面找到它们:

  1. 学习ls命令与15基本的例子
  2. 学习7高级ls命令与示例
  3. 15在Linux中的ls命令有用的面试问题

排序命令

排序 -此命令可以用来只是任何领域或该领域的任何特定列到任何搜索的排序输出。

我们已经介绍在Linux sort命令两篇文章,可以在下面找到它们:

  1. 14 Linux'sort'命令示例 - 第1部分
  2. 7有用的Linux'sort'命令示例 - 第2部分

这些命令本身是非常强大的命令来掌握,如果你在黑色屏幕上工作,必须处理大量的文件,只是为了得到你想要的。

使用日期和时间对文件排序的一些方法

以下是基于日期和时间排序的命令列表。

1.根据修改时间列出文件

以下命令以长列表格式列出文件,并根据修改时间(最新的第一个)对文件进行排序。 若要按相反的顺序,使用'-r'切换使用此命令。

# ls -lt
total 673768
-rwxr----- 1 youcl youcl  3312130 Jan 19 15:24 When You Are Gone.MP3
-rwxr----- 1 youcl youcl  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony-1.mp3
-rwxr----- 1 youcl youcl  4177212 Jan 19 15:24 When I Dream At Night - Marc Anthony.mp3
-rwxr----- 1 youcl youcl  6629090 Jan 19 15:24 Westlife_Tonight.MP3
-rwxr----- 1 youcl youcl  3448832 Jan 19 15:24 We Are The World by USA For Africa (Michael Jackson).mp3
-rwxr----- 1 youcl youcl  8580934 Jan 19 15:24 This Love.mp3
-rwxr----- 1 youcl youcl  2194832 Jan 19 15:24 The Cross Of Changes.mp3
-rwxr----- 1 youcl youcl  5087527 Jan 19 15:24 T.N.T. For The Brain 5.18.mp3
-rwxr----- 1 youcl youcl  3437100 Jan 19 15:24 Summer Of '69.MP3
-rwxr----- 1 youcl youcl  4360278 Jan 19 15:24 Smell Of Desire.4.32.mp3
-rwxr----- 1 youcl youcl  4582632 Jan 19 15:24 Silence Must Be Heard 4.46.mp3
-rwxr----- 1 youcl youcl  4147119 Jan 19 15:24 Shadows In Silence 4.19.mp3
-rwxr----- 1 youcl youcl  4189654 Jan 19 15:24 Sarah Brightman  & Enigma - Eden (remix).mp3
-rwxr----- 1 youcl youcl  4124421 Jan 19 15:24 Sade - Smooth Operator.mp3
-rwxr----- 1 youcl youcl  4771840 Jan 19 15:24 Sade - And I Miss You.mp3
-rwxr----- 1 youcl youcl  3749477 Jan 19 15:24 Run To You.MP3
-rwxr----- 1 youcl youcl  7573679 Jan 19 15:24 Roger Sanchez_Another Chance_Full_Mix.mp3
-rwxr----- 1 youcl youcl  3018211 Jan 19 15:24 Principal Of Lust.3.08.mp3
-rwxr----- 1 youcl youcl  5688390 Jan 19 15:24 Please Forgive Me.MP3
-rwxr----- 1 youcl youcl  3381827 Jan 19 15:24 Obvious.mp3
-rwxr----- 1 youcl youcl  5499073 Jan 19 15:24 Namstey-London-Viraaniya.mp3
-rwxr----- 1 youcl youcl  3129210 Jan 19 15:24 MOS-Enya - Only Time (Pop Radio mix).m

2.基于最近访问时间列出文件

基于最后访问时间,即基于文件最后访问,未修改的时间,在目录中列出文件。

# ls -ltu
total 3084272
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:24 Music
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 Linux-ISO
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 Music-Player
drwx------  3 youcl youcl       4096 Jan 19 15:22 tor-browser_en-US
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 bin
drwxr-xr-x 11 youcl youcl       4096 Jan 19 15:22 Android Games
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 Songs
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 renamefiles
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 katoolin-master
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 Tricks
drwxr-xr-x  3 youcl youcl       4096 Jan 19 15:22 Linux-Tricks
drwxr-xr-x  6 youcl youcl       4096 Jan 19 15:22 tuptime
drwxr-xr-x  4 youcl youcl       4096 Jan 19 15:22 xdm
drwxr-xr-x  2 youcl youcl      20480 Jan 19 15:22 ffmpeg usage
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:22 xdm-helper

3.基于上次修改时间列出文件

上市基础上的文件的状态信息,或最后的修改时间在目录中的文件'ctime' 此命令将首先列出其任何状态信息(如:所有者,组,权限,大小等)最近已更改的文件。

# ls -ltc
total 3084272
drwxr-xr-x  2 youcl youcl       4096 Jan 19 15:24 Music
drwxr-xr-x  2 youcl youcl       4096 Jan 19 13:05 img
-rw-------  1 youcl youcl     262191 Jan 19 12:15 youcl.jpeg
drwxr-xr-x  5 youcl youcl       4096 Jan 19 10:57 Desktop
drwxr-xr-x  7 youcl youcl      12288 Jan 18 16:00 Downloads
drwxr-xr-x 13 youcl youcl       4096 Jan 18 15:36 VirtualBox VMs
-rwxr-xr-x  1 youcl youcl        691 Jan 13 14:57 special.sh
-rw-r--r--  1 youcl youcl     654325 Jan  4 16:55 powertop-2.7.tar.gz.save
-rw-r--r--  1 youcl youcl     654329 Jan  4 11:17 filename.tar.gz
drwxr-xr-x  3 youcl youcl       4096 Jan  4 11:04 powertop-2.7
-rw-r--r--  1 youcl youcl     447795 Dec 31 14:22 Happy-New-Year-2016.jpg
-rw-r--r--  1 youcl youcl         12 Dec 18 18:46 ravi
-rw-r--r--  1 youcl youcl       1823 Dec 16 12:45 setuid.txt
...

如果'-a'开关与上述命令一起使用,它们可以列出和分类甚至隐藏文件在当前目录中,和'-r'开关列出以相反的顺序输出。

为了更深入的排序,就像find命令输出排序,但是ls也可以使用,但有'sort'作为输出可能没有唯一的文件名,而是以用户所希望的任何领域证明更有帮助。

下面的命令显示的使用sortfind命令排序根据日期时间的文件列表。

要了解更多有关find命令,请点击此链接: 在Linux的“查找”命令的35实际的例子

4.根据月份对文件进行排序

在这里,我们使用find命令查找所有的文件根('/')目录,然后打印出结果为:在文件被访问一个月 ,然后文件名。 该完整的结果,这里我们列出了排名前11位的条目。

# find / -type f -printf "\n%Ab %p" | head -n 11
Dec /usr/lib/nvidia/pre-install
Dec /usr/lib/libcpufreq.so.0.0.0
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libcdr-0.0.so.0.0.15
Dec /usr/lib/msttcorefonts/update-ms-fonts
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn

下面的命令使用排序键作为第一场输出,通过指定的'-k1'然后按指定它的排序月'M'在它前面。

# find / -type f -printf "\n%Ab %p" | head -n 11 | sort -k1M
Apr /usr/lib/libcdr-0.0.so.0.0.15
Apr /usr/lib/libchromeXvMCPro.so.1.0.0
Apr /usr/lib/libchromeXvMC.so.1.0.0
Apr /usr/lib/libt1.so.5.1.2
Nov /usr/lib/ldscripts/elf32_x86_64.xr
Nov /usr/lib/ldscripts/elf_i386.xbn
Nov /usr/lib/ldscripts/i386linux.xn
Dec /usr/lib/libcpufreq.so.0.0.0
Dec /usr/lib/msttcorefonts/update-ms-fonts
Dec /usr/lib/nvidia/pre-install

5.基于日期对文件进行排序

在这里,我们再次使用find命令查找在根目录下的所有文件,但现在我们将打印结果为:文件被访问最后日期 ,文件被访问一次 ,然后文件名。 其中我们拿出前11名。

# find / -type f -printf "\n%AD %AT %p" | head -n 11
12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

以下排序命令首先基于年份的最后一位数排序,然后以相反顺序基于月份的最后一位进行排序,并且最后基于第一字段排序。 在这里,“1.8”是指第一场和'N'提前就意味着数值排序列第8,而“R”表示相反的顺序排序。

# find / -type f -printf "\n%AD %AT %p" | head -n 11 | sort -k1.8n -k1.1nr -k1
12/07/15 10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
12/08/15 11:30:38.0000000000 /usr/lib/nvidia/pre-install
12/18/15 11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
11/12/15 12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn
04/11/15 06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
04/11/15 06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
04/11/15 06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
04/11/15 06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0

6.根据时间对文件进行排序

在这里,我们再次使用find命令列出了排名前11位的文件在根目录下,并打印出结果格式:最后一次访问文件,然后文件名。

# find / -type f -printf "\n%AT %p" | head -n 11
11:30:38.0000000000 /usr/lib/nvidia/pre-install
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

以下命令基于输出的第一个字段的第一列(小时的第一个数字)对输出进行排序。

# find / -type f -printf "\n%AT %p" | head -n 11 | sort -k1.1n
06:08:34.9819910430 /usr/lib/libchromeXvMCPro.so.1.0.0
06:08:34.9939910430 /usr/lib/libt1.so.5.1.2
06:08:35.0099910420 /usr/lib/libcdr-0.0.so.0.0.15
06:08:35.0099910420 /usr/lib/libchromeXvMC.so.1.0.0
10:34:45.2694776230 /usr/lib/libcpufreq.so.0.0.0
11:19:25.2656728990 /usr/lib/msttcorefonts/update-ms-fonts
11:30:38.0000000000 /usr/lib/nvidia/pre-install
12:56:34.0000000000 /usr/lib/ldscripts/elf32_x86_64.xr
12:56:34.0000000000 /usr/lib/ldscripts/elf_i386.xbn
12:56:34.0000000000 /usr/lib/ldscripts/i386linux.xn

7.基于日期排序ls -l的Ouptut

此命令排序输出'ls -l'基于6月份现场指挥英明,再根据7场是日期,数字。

# ls -l | sort -k6M -k7n
total 116
-rw-r--r-- 1 root root     0 Oct  1 19:51 backup.tgz
drwxr-xr-x 2 root root  4096 Oct  7 15:27 Desktop
-rw-r--r-- 1 root root 15853 Oct  7 15:19 powertop_report.csv
-rw-r--r-- 1 root root 79112 Oct  7 15:25 powertop.html
-rw-r--r-- 1 root root     0 Oct 16 15:26 file3
-rw-r--r-- 1 root root    13 Oct 16 15:17 B
-rw-r--r-- 1 root root    21 Oct 16 15:16 A
-rw-r--r-- 1 root root    64 Oct 16 15:38 C

结论

同样,有sort命令有一定的了解,您可以排序几乎所有上市的基础上你想要的任何领域,甚至它的任何列。 这些是一些技巧,以帮助您基于日期或时间排序文件。 你可以根据这些创建自己的技巧。 然而,如果你有任何其他有趣的伎俩,你可以在你的评论中总是提到。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏