web-dev-qa-db-ja.com

ファイルの時間をリストする方法は?

この投稿 によると、Linuxでstatを与えるためにatimeを使用できますが、FreeBSD 10.1にはGNU stat

ファイルのatimeを一覧表示するにはどうすればよいですか?

6
Jasmine Lognnes
ls -lu

どこ -lは長いリスト形式を提供します。-uアクセス時間でソートします。

6
marshki

私はいつも使ってきました:

ls -l -u

あるいは-多分perlを破りますか?

Perlは stat syscallを直接使用できます

#!/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";
}
2
Sobrique

FreeBSD stat の場合:

stat -f '%Sa' file

%Saは、ファイルaccess時間をStringとして希望することを意味します。

2
cuonglm