我需要显示文件的名称,大小,硬链接数,所有者和修改日期(按此顺序)。
#!/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
一切正常(我认为),除了它显示的不仅仅是日期。我将使用什么命令来显示上次修改的日期?
答案 0 :(得分:1)
请参阅man stat
。
您需要使用a
,m
,c
或B
来提供上次访问或修改时间文件。
答案 1 :(得分:0)
看来你正在寻找这个:
stat -c %y $filename
或者这个:
date -r $filename
或者这个(最便携):
fn=$filename perl -e 'print scalar localtime((stat("$ENV{fn}"))[9])'
另一方面,stat -c %y
已经在你的帖子中了,你写道:
一切正常(我认为),除了它显示的不仅仅是日期。我将使用什么命令来显示上次修改的日期?
这让我觉得也许你只想要日期部分?一个(懒惰)解决方案是使用cut
,awk
,sed
之类的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
无法执行此操作,但date
和perl
可以执行此操作,例如:
date +%Y-%m-%d -r $filename