如何列出文件的时间?

如何列出文件的时间?

根据这个帖子可以stat用于atime在 Linux 上提供 ,但 FreeBSD 10.1 没有 GNU stat

如何列出atimefor 文件?

答案1

ls -lu

其中-l将提供长列表格式并按-u访问时间排序。

答案2

FreeBSD 统计:

stat -f '%Sa' file

%Sa意味着你想要文件a访问时间为String。

答案3

我一直用:

ls -l -u

或者 - 也许可以突破 perl?

Perl 可以使用stat直接系统调用

#!/usr/bin/env perl
use strict;
use warnings;
foreach my $filename ( @ARGV ) {
    print "$filename =>", (stat($filename))[8],"\n";
}

你可以将其简单地写为:

perl -e 'print "$_ ",(stat($_))[8],"\n" for @ARGV' <filename(s)>

如果你想做一个更漂亮的时间戳(而不是stat返回的纪元):

perl -MTime::Piece -e 'print "$_ ",Time::Piece->new((stat($_))[8]),"\n" for @ARGV'

或者

perl -MTime::Piece -e 'print "$_ ",Time::Piece->new((stat($_))[8])->strftime("%F %T"),"\n" for @ARGV'

它使用strftime%F %T为您提供:

2015-09-06 01:02:33

扩展脚本:

#!/usr/bin/env perl
use strict;
use warnings;
use Time::Piece; 
foreach my $filename ( @ARGV ) {
    my $epoch_time = (stat($filename))[8];
    my $time_string = Time::Piece -> new ( $epoch_time ) -> strftime ( "%F %T" );
    print "$time_string => $filename\n";
}

相关内容