我想要一种方法来查找和打印文件的修改时间,以便在 bash 脚本中使用。
我想出了:
ls -l $filename | cut -d ' ' -f '6-8'
哪个输出:
Jul 26 15:05
虽然我想避免 parsing ls
,但在里面放一年也是有用的。
理想情况下,我希望看到类似于date
命令默认输出的输出。
Tue Jul 26 15:20:59 BST 2016
还有哪些有用的方法?
我想要一种方法来查找和打印文件的修改时间,以便在 bash 脚本中使用。
我想出了:
ls -l $filename | cut -d ' ' -f '6-8'
哪个输出:
Jul 26 15:05
虽然我想避免 parsing ls
,但在里面放一年也是有用的。
理想情况下,我希望看到类似于date
命令默认输出的输出。
Tue Jul 26 15:20:59 BST 2016
还有哪些有用的方法?
不要使用
ls
,这是一份工作stat
:-c
让我们获得特定的输出,这里%y
将以人类可读的格式获得文件的最后修改时间。要获得自 Epoch 以来的秒数,请使用%Y
:如果您也想要文件名,请使用
%n
:设置格式说明符以满足您的需要。检查
man stat
。例子:
如果您想要类似的输出
Tue Jul 26 15:20:59 BST 2016
,请使用 Epoch 时间作为输入date
:检查
date
的格式说明符以满足您的需要。也见man date
。我试过了
但如果日期小于 10,则会错过时间。这是因为如果小于 10,则日期前有多余的空格。试试这个:
awk 命令打印由所有空格 (-F ' ') 分隔的字段。希望它有效。我知道这并没有回答最初的问题,而只是对 ls 命令的日期和时间的澄清。当您使用 Google 搜索“ubuntu 获取文件的日期和时间”时,它会在顶部列出这个问题,这是我一直在寻找的,因为我也不需要年份。对于年份、日期和时间,您可以尝试以下命令之一。%m 打印月份数。%b 打印月份缩写:如果不需要小时和分钟,请删除 %H:%M。%-d 不打印当月某天的前导零。