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

习惯于使用图形用户界面的人可以使用文件管理器来查找,它以长列表格式列出文件,使得我们很容易找出我们想要的东西,但是那些习惯于使用命令行的用户,或者在没有图形用户界面的服务器上工作的人,可能会希望有一个简单的命令或一组命令来简化他们的搜索。

file

这就是Linux的真正美妙之处,因为Linux有一套命令集,如果单独或一起使用,可以帮助搜索文件,或者根据它们的名称、修改日期、创建时间,甚至你能想到的任何过滤器来排序文件集合,以得到你想要的结果。

在这里,我们将通过研究一组命令来揭示Linux的真正力量,这些命令可以帮助我们根据日期时间对文件或文件列表进行排序。

Linux中用于排序文件的实用程序

一些基本的Linux命令行实用程序,它们对于根据日期时间对目录进行排序来说足够了:

ls命令

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

sort命令

sort – 这个命令可以用来对任何搜索的输出进行排序,只需按任何字段或字段的任何特定列。

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

以下是根据日期和时间进行排序的命令列表。

根据修改时间列出文件

以下命令以长列表格式列出文件,并根据修改时间对文件进行排序,最新的文件在最前面。要以相反的顺序排序,可以在此命令中使用'-r'开关。

$ ls -lt

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

根据最后访问时间列出文件

根据文件最后访问时间列出目录中的文件,即根据文件最后被访问的时间,而不是修改的时间。

$ ls -ltu

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

根据最后修改时间列出文件

根据文件状态信息的最后修改时间列出目录中的文件,或者称为'ctime'。这个命令会首先列出那些状态信息(如:所有者、组、权限、大小等)最近发生变化的文件。

$ ls -ltc

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

如果在上述命令中使用'-a'开关,它们可以列出并排序当前目录中的隐藏文件,而'-r'开关会以相反的顺序列出输出。

对于更深入的排序,比如基于find命令的Output进行排序,尽管ls也可以被使用,但在输出可能不仅仅是文件名,而是用户想要的任何字段时,'sort'会更有帮助。

根据月份排序文件

在这里,我们使用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

根据日期排序文件

在这里,我们再次使用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.
4个Linux终端清屏的命令
Autojump一个linux目录快速跳转的命令工具
标签:

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

24 + 79 =

ajax-loader