Bagaimana cara mengatur mtime file dalam format zaman?

11

Saya tahu cara mendapatkan file mtime dalam format zaman:

stat --format=%Y <file>

Tapi saya belum bisa mencari cara mengatur waktu file dalam format zaman. Halaman manual touch (1) tampaknya hanya menerima nilai "cap waktu" (format tetap lebih atau kurang yang menggunakan bulan, hari, jam, tambang, dll.) Atau "sebagian besar string format tanggal yang dapat dibaca manusia dengan format bebas".

Apakah ada utilitas lain yang harus saya perhatikan?

Terima kasih.

eil
sumber
1
Harap selalu sertakan OS Anda. Solusi sangat sering bergantung pada Sistem Operasi yang digunakan. Apakah Anda menggunakan Unix, Linux, BSD, OSX, sesuatu yang lain? Versi yang mana?
terdon

Jawaban:

10

Setidaknya di dunia GNU:

touch --date=@1403970787 file

Suka dengan date.

Hauke ​​Laging
sumber
1

Dengan perl:

$ perl -e 'utime (stat($_))[8], time(), $_ for @ARGV' file1 file2 ...

Ini akan mengubah waktu semua file di @ARGV. (stat($_))[8]adalah atime file.

utime dapat menerima daftar file, jika Anda tidak ingin mengubah atime, Anda dapat mencoba:

 $ perl -e '$t = time(); utime $t, $t, @ARGV' file1 file2 ...

Catatan

utimetergantung pada pustaka runtime C dan sistem file menggunakan. lihat lebih banyak di perldoc -f utimedan perldoc perlport.

cuonglm
sumber
0

Dengan touchperintah dari GNU coreutils (yaitu pada Linux dan Cygwin yang tidak tertanam), lihat manual lengkap (biasanya tersedia secara lokal dalam format info) untuk dokumentasi format input tanggal . Tanggal zaman ditandai dengan awalan @:

touch -d @1234567890 foo

Ini juga berfungsi dengan BusyBox (setidaknya pada beberapa sistem, mungkin tergantung pada opsi kompilasi).

Dengan * BSD, saya tidak berpikir Anda bisa melakukan ini touchsendirian, tetapi Anda bisa menelepon dateuntuk memformat waktu zaman ke dalam format yang touchmenerima.

touch -d "$(date -r 1234567890 +%Y%m%d%H%M.%S)" foo

POSIX terkenal tidak memiliki cara untuk memanipulasi tanggal zaman. Anda bisa menggunakan perl .

Gilles 'SANGAT berhenti menjadi jahat'
sumber