显示上次修改日期

时间:2013-11-13 05:06:05

标签: linux shell csh

我需要显示文件的名称,大小,硬链接数,所有者和修改日期(按此顺序)。

#!/bin/csh

echo Enter file name
set filename = $<

if(-f $filename)then

    if(-z $filename)then
      rm $filename
    else 
      clear

      echo $filename
      stat -c %s $filename
      stat -c %h $filename
      stat -c %U $filename
      stat -c %y $filename

    endif
endif

一切正常(我认为),除了它显示的不仅仅是日期。我将使用什么命令来显示上次修改的日期?

2 个答案:

答案 0 :(得分:1)

请参阅man stat

您需要使用amcB来提供上次访问或修改时间文件。

答案 1 :(得分:0)

看来你正在寻找这个:

stat -c %y $filename

或者这个:

date -r $filename

或者这个(最便携):

fn=$filename perl -e 'print scalar localtime((stat("$ENV{fn}"))[9])'

另一方面,stat -c %y已经在你的帖子中了,你写道:

  

一切正常(我认为),除了它显示的不仅仅是日期。我将使用什么命令来显示上次修改的日期?

这让我觉得也许你只想要日期部分?一个(懒惰)解决方案是使用cutawksed之类的shell命令来提取您需要的内容,例如:

$ stat -c %y sample.txt
2013-10-12 09:24:08.096820646 -0700
$ stat -c %y sample.txt | cut -f1 -d' '
2013-10-12

更好的解决方案是以所需格式生成日期,但这取决于您使用的命令。例如,stat无法执行此操作,但dateperl可以执行此操作,例如:

date +%Y-%m-%d -r $filename