#1 楼
如@ edvinas.me所述,stat
会告诉您有关文件的各种信息,包括最后修改日期。起初,我对Modify and Change感到困惑,只是为了澄清
stat
输出列表:访问显示最后一次数据访问的时间(例如,读取)。
修改显示最后一次数据修改的时间。
Change显示文件状态上次更改的时间。
例如:
~ $ 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: -
#2 楼
使用stat
命令来实现以下目的:$ stat file
评论
如果只需要最后修改日期(以人类可读的形式),请使用stat -c'%y'文件
–亚当·泰勒(Adam Taylor)
15年2月19日在14:53
#3 楼
另一种更灵活的方式是使用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
评论
是的,非常有帮助,谢谢。这是一个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}
–旅行者
18年4月17日在19:39
完美,应该是公认的答案
– A.B.
19-10-11在7:22
最佳答案完美!
– Smeterlink
20-5-20在11:55
#4 楼
请执行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
#5 楼
在@phoops的答案和@Sparhawk的答案中以@Adam Taylor的评论为基础。具体来说只是获取日期(以2019年10月3日为例,因为这是我的上一个生日,这是我的venmo,如果您认为自己能在经济上祝福我:@levi_uzodike)
stat -c %y file | cut -d' ' -f1
将给您2019-10-03
date +%F -r file
还会给您2019-10-03
date +%D -r file
给您10/03/19
date +%x -r file
可能给您10/03/2019
或10/03/19
(如果您在美国) 03/10/2019
或03/10/19
(如果您在英国),仅举几个例子(当然,还有更多可能)这些
date
格式选项据我所知是其他格式的组合选项。以下是手册页中的一些解释:%b语言环境的缩写月份名称(例如,一月)
%B语言环境的完整月份名称(例如,一月)
...
%d日(例如01)
%D日期;与%m /%d /%y
%e月的某天相同,并填充了空格;与%_d
%F完整日期相同;与%Y-%m-%d
...
%m month(01..12)
...
%x语言环境的日期表示形式相同(例如12 / 31/99)
...
%y年的后两位(00..99)
%Y年
...
默认情况下,日期填充用零填充的数字字段。
以下可选标志可能在'%'之后:
-(连字符)不填充字段
_(下划线)填充空格
0(零)填充了零的字符
^尽可能使用大写字母
#尽可能使用大写字母
NB:这些标志不起作用使用“组合格式”,例如
%F
,%D
和%x
。它们用于“单个字段格式”。显然,最后一个标志(#)不能按我期望的那样工作(例如,如果
date +%b
给Oct
,date +%#b
给OCT
而不是oCT
),我想这将是无用的,但我认为小写的选择会更多有用。 date +%#p
确实将date +%p
变成了PM
或AM
,它们可能分别变成pm
或am
。因此,我猜这不是“按字符”的大小写转换,而是将字符串中所有字符的大小写设置为大多数字符的相反大小写?同样date +%P
给出pm
或am
,但是date +%^P
和date +%#P
都不会改变其输出。对于这种情况,我的猜测是%P
只是%#p
的别名,而且似乎每当添加多个标志时,该行为都是不确定的/不可预测的(例如,date +%0-e
与date +%-e
具有相同的含义:3
和date +%-0e
具有相同的含义date +%0e
:03
,这使您认为只有字母旁边的标志有效或从左到右,但是date +%#^p
和date +%^#p
都给出pm
或am
,[当然取决于时间])除非存在一些隐藏的顺序操作?抱歉离题... 此外,如果您运行命令
locale -k LC_TIME | grep ^d_fmt
,则可以看到系统特定语言环境的组合(例如d_fmt="%m/%d/%Y"
)。您可以制作自己的组合。例如,
date +%^b\ %-e\ %Y -r file
会给你OCT 3 2019
#6 楼
1)列出最后修改日期/时间的文件目录
要列出文件并在顶部显示最后修改的文件,我们将在
-lt
命令中使用ls
选项。$ 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/
#7 楼
如果文件在另一个Web服务器上,我喜欢httpie
(文档)。安装
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
(例如,超级用户似乎不这样做)。
评论
ls -l也可以使用...superuser.com/questions/612099/的副本...
@DanielBeck是ls -l的日期是修改日期还是创建日期?
@BrunoBieri这是修改日期。见人ls。典型的Linux文件系统甚至都不会跟踪创建日期-有关跟踪的日期类型,请参见公认的答案。