1

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

#!/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

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

4

2 回答 2

1

man stat

您需要使用a,m或给出上次访问或修改文件的时间cB

于 2013-11-13T05:10:59.950 回答
0

看来您正在寻找这个:

stat -c %y $filename

或这个:

date -r $filename

或者这个(最便携的):

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

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

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

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

$ 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
于 2013-11-13T06:41:00.123 回答