私はどうするか知っています得るファイル変更時間(エポック形式):
stat --format=%Y <file>
しかし、私は方法を知りませんでした。置くファイル変更時間(エポック形式)。 touch(1) のマニュアルページでは、「タイムスタンプ」値(月、日、時間、分などを使用する多少固定形式)または「ほとんどの人が読める自由形式の日付文字列」のみが許可されているようです。
調査する必要がある他のユーティリティはありますか?
ありがとうございます。
答え1
少なくともGNUの世界では:
touch --date=@1403970787 file
同様にdate
。
答え2
touch
GNU coreutils(つまり、組み込みのLinuxおよびCygwin)のコマンドを使用する場合は、以下を参照してください。完全なマニュアル(通常情報形式で現地で提供)日付入力形式。新起源日プレフィックスでマーク@
:
touch -d @1234567890 foo
これはBusyBoxでも機能します(少なくとも一部のシステムではコンパイルオプションによって異なります)。
* BSDの場合、自分ではできないようですが、エポック時間を許容形式でフォーマットするようにtouch
呼び出すことができます。date
touch
touch -d "$(date -r 1234567890 +%Y%m%d%H%M.%S)" foo
POSIXは、時代の日付を操作する方法が不足しているため、悪名高い。あなたはできますパールを使って。
答え3
そしてperl
:
$ perl -e 'utime (stat($_))[8], time(), $_ for @ARGV' file1 file2 ...
これにより、すべてのファイルのmtimeが変更されます@ARGV
。(stat($_))[8]
ファイルの時間です。
utime
ファイルのリストを受け取ることができます。時間の変更に興味がない場合は、以下を試してください。
$ perl -e '$t = time(); utime $t, $t, @ARGV' file1 file2 ...
ノート
utime
Cランタイムライブラリと使用しているファイルシステムによって異なります。perldoc -f utime
とで詳細を確認してくださいperldoc perlport
。