获取Linux中文件的最后修改日期


149

我是Linux的新手。我正在使用命令行。我正在尝试查看文件的最后修改日期。在Linux中如何从命令行执行此操作?


25
ls -l也适用...
丹尼尔·贝克


1
@DanielBeck是ls -l修改日期还是创建日期?
布鲁诺·比耶里

1
@BrunoBieri这是修改日期。请参阅man ls。典型的Linux文件系统甚至不跟踪创建日期-有关跟踪的日期类型,请参见公认的答案。
丹尼尔·贝克

Answers:


133

如@ edvinas.me所述,它stat告诉您有关文件的各种信息,包括最后修改日期。

起初,我对ModifyChange感到困惑,只是为了澄清stat输出列表:

  • 访问显示最后一次数据访问(例如读取)的时间。
  • 修改显示最后一次数据修改的时间。
  • 更改显示文件状态上次更改的时间。

例如:

~ $ touch foo
~ $ stat foo
File: ‘foo’
Size: 0             Blocks: 0          IO Block: 4096   regular empty file
Device: fc01h/64513d    Inode: 410397      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:06:11.343616258 +0200
Modify: 2015-09-21 12:06:11.343616258 +0200
Change: 2015-09-21 12:06:11.343616258 +0200
Birth: -

~ $ echo "Added bar to foo file" >> foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0644/-rw-r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:09:31.302713093 +0200
Birth: -

~ $ chmod 444 foo
~ $ stat foo
File: ‘foo’
Size: 42            Blocks: 8          IO Block: 4096   regular file
Device: fc01h/64513d    Inode: 410654      Links: 1
Access: (0444/-r--r--r--)  Uid: (80972/ etomort)   Gid: (18429/  eem_tw)
Access: 2015-09-21 12:09:31.298712951 +0200
Modify: 2015-09-21 12:09:31.298712951 +0200
Change: 2015-09-21 12:10:16.040310543 +0200
Birth: -

65

stat为此使用命令:

$ stat file

27
如果您只想要最后修改的日期(以人类可读的形式),请使用stat -c '%y' file
Adam Taylor

35

更加灵活的另一种方法是使用date -r。来自man date

-r, --reference=FILE
       display the last modification time of FILE

这具有允许您指定输出格式的优点,例如

$ date -r foo
Thu Aug 31 10:36:28 AEST 2017
$ date -r foo -R
Thu, 31 Aug 2017 10:36:28 +1000
$ date -r foo -u
Thu Aug 31 00:36:28 UTC 2017
$ date -r foo +%s
1504139788

3
是的,非常有帮助,谢谢。这是一个bash函数,它将重命名要以修改时间作为前缀的文件:function mvfilestime(){if [x“ $ {1}” =“ x”]; 然后回显“ mvfilestime:缺少mv的文件参数”,否则f = $(date +“%Y-%m-%d-%H-%M” -r $ {1})-$ {1} echo mv $ {1} $ {f} mv $ {1} $ {f} fi}
旅行者

完美,应该被接受的答案
AB

15

ls -l 应该做的工作。

例:

#> ls -l /home/TEST/
total 16

-rw-r--r--   1 rfmas1   nms          949 Nov 16 12:21 create_nd_lists.py

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 enb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nb_list

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 nodes_ip.txt

-rw-r--r--   1 rfmas1   nms            0 Nov 16 12:35 rnc_list

2

如果文件在另一个Web服务器上,我喜欢httpiedocs)。

安装

pip install httpie --user

用法

-h命令仅给出标题。模式是

http -h [url] | grep 'Last-Modified\|Date'

例:

$ http -h https://martin-thoma.com/author/martin-thoma/ | grep 'Last-Modified\|Date'
Date: Fri, 06 Jan 2017 10:06:43 GMT
Last-Modified: Fri, 06 Jan 2017 07:42:34 GMT

Date重要性,因为这会报告服务器时间,而不是您的本地时间。同样,并非每个服务器都发送Last-Modified(例如,超级用户似乎不这样做)。


2

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

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

$ 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

https://linoxide.com/linux-how-to/how-sort-files-date-using-ls-command-linux/


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.