如何在Linux中使用LS命令按日期排序文件

时间:2020-03-05 15:27:02  来源:igfitidea点击:

LS命令用于列出目录内容,结果可以在若干条件上对结果进行排序,例如按日期,按字母顺序排序,修改时间,访问时间,版本和文件大小。

在本文中,我将在Linux中使用ls命令向我们展示如何按日期排序文件。

1)列出包含最后修改日期/时间的文件目录

要列出文件并显示顶部的最后修改文件,我们将使用使用ls命令的-lt选项。

$ls -lt /run
output
total 24
-rw-rw-r--.  1 root utmp 2304 Sep  8 14:58 utmp
-rw-r--r--.  1 root root    4 Sep  8 12:41 dhclient-eth0.pid
drwxr-xr-x.  4 root root  100 Sep  8 03:31 lock
drwxr-xr-x.  3 root root   60 Sep  7 23:11 user
drwxr-xr-x.  7 root root  160 Aug 26 14:59 udev
drwxr-xr-x.  2 root root   60 Aug 21 13:18 tuned

2)列出上次修改日期/时间的文件(最近在底部)

我们将使用"-ltr""选项与"ls"命令"列出特定目录的文件,其中最近修改了底部的文件。

$ls -ltr /run
$ls -ltr /run
total 13404
drwxr-xr-x 2 root        root           4096 Dec 14  2015 scripts
-rwxr-xr-x 1 root        root           4688 Dec 14  2015 perms.py
-rw-r--r-- 1 root        root           9718 Jun 23 14:47 ddagent-install.log
-rw-r--r-- 1 root        root        1457471 Jun 26 01:26 rocket.zip
drwxr-xr-x 2 root        root           4096 Jun 26 10:40 ssl-21APR2016-11JUN2017
drwxr-xr-x 6 root        root           4096 Jun 27 09:29 incubator-pagespeed-ngx-latest-stable
drwxr-xr-x 9 root        root           4096 Jun 27 09:29 nginx-1.15.0
drwxr-xr-x 3 root        root           4096 May  2 19:55 rocket-nginx
-rw-r--r-- 1 root        root          18186 May 11 13:17 memcachy.zip
-rwxr-xr-x 1 root        root       12202195 Sep  4 12:21 Linux_64bit.install
:~#

如果要按目录排序,则按日期使用

$ls -Rltr

3)以人类可读格式显示

我们将使用与ls命令的-halt选项列出人类可读文件大小,长格式的特定目录的文件。
它使用k,m,g和t后缀(或者字节的后缀)

$ls -halt /run
total 28K
  -rw-rw-r--.  1 root utmp 1.9K Oct 28 06:02 utmp
  drwxr-xr-x.  3 root root   60 Oct 28 06:02 user
  drwxr-xr-x.  4 root root  100 Oct 28 03:48 lock
  -rw-r--r--.  1 root root    4 Oct 28 02:50 dhclient-eth0.pid
  drwxr-xr-x.  7 root root  160 Oct 25 12:16 udev
  drwxr-xr-x. 21 root root  600 Oct 25 12:15 .

4)查找最近10分钟内修改的文件

我们可以使用以下命令在最后10分钟内修改文件:

$find . -mmin -10 -type f -exec ls -l {} +
-rw-r--r--. 1 root root 53 Nov  1 01:58 ./smart.txt
-rw-r--r--. 1 root root 15 Nov  1 02:00 ./test/file1

5)最近修改了10个文件

允许使用LS命令查看如何在目录中检查最近修改的10个文件。
我们将使用'ls"和'head'命令的组合。

下面的命令将显示已修改的10个文件,其中最近更新的文件

$ls -lt /run/| head -10
-rw-rw-r--.  1 root utmp 1920 Oct 31 01:57 utmp
drwxr-xr-x.  3 root root   60 Oct 31 01:57 user
drwxr-xr-x. 16 root root  400 Oct 30 23:06 systemd
-rw-r--r--.  1 root root    4 Oct 30 18:42 dhclient-eth0.pid
drwxr-xr-x.  4 root root  100 Oct 30 03:06 lock
drwxr-xr-x.  7 root root  160 Oct 28 06:09 udev
-rw-------.  1 root root    3 Oct 25 12:15 syslogd.pid
drwxr-xr-x.  2 root root   60 Oct 25 12:15 tuned
-rw-r--r--.  1 root root    4 Oct 25 12:15 sshd.pid

或者

使用tail组合,它显示最近更新的文件。

$ls -ltr /run/| tail -10
drwxr-xr-x.  3 root root  100 Oct 25 12:15 NetworkManager
-rw-r--r--.  1 root root    4 Oct 25 12:15 sshd.pid
drwxr-xr-x.  2 root root   60 Oct 25 12:15 tuned
-rw-------.  1 root root    3 Oct 25 12:15 syslogd.pid
drwxr-xr-x.  7 root root  160 Oct 28 06:09 udev
drwxr-xr-x.  4 root root  100 Oct 30 03:06 lock
-rw-r--r--.  1 root root    4 Oct 30 18:42 dhclient-eth0.pid
drwxr-xr-x. 16 root root  400 Oct 30 23:06 systemd
drwxr-xr-x.  3 root root   60 Oct 31 01:57 user
-rw-rw-r--.  1 root utmp 1920 Oct 31 01:57 utmp