Bagaimana cara mengubah tanggal / waktu pembuatan (st_birthtime) file di Lion? [duplikat]

10

touch(1)hanya dapat mengubah waktu modifikasi dan akses , tetapi tidak memiliki opsi untuk waktu pembuatan . Ini tidak berhasil, setidaknya tidak pada Lion.

Jadi bagaimana cara mengubah ciptaan waktu, juga disebut sebagai birthtime di fstat(2)? Tidak ada panggilan yang sesuai utimes(2)dan sepertinya tidak ada alat baris perintah untuk ini.

Saya tahu saya bisa menyalin file ke file baru, yang kemudian mendapatkan waktu saat ini sebagai waktu lahir (dan kemudian menghapus yang asli), tetapi tentunya harus ada cara yang lebih baik?

Ingmar Hupp
sumber
1
touch -t yyyymmddhhmm $filetampaknya mengubah tanggal pembuatan, tetapi hanya jika sebelum tanggal pembuatan asli.
Lri
Poin bagus, @Lri - itu benar-benar masuk akal, karena itu memperbarui mtime dan atime dan file tidak dapat diakses atau dimodifikasi sebelum dibuat. Tapi itu tidak membuat saya mengatur waktu pembuatan yang lebih baru.
Ingmar Hupp
Apakah Anda merujuk untuk mengubahnya melalui baris perintah, atau hanya secara umum, tidak harus dengan CLI?
daviesgeek
Terus terang saya berharap Anda tidak dapat mengubahnya, karena pasti itu akan mengalahkan seluruh titik lapangan ?! Saya juga menduga beberapa masalah hte adalah bahwa waktu kelahiran / pembuatan bukanlah fitur sistem file standar; hfs menambahkannya dalam atribut mereka yang diperluas, saya pikir - jadi kecuali utilitas telah diperbarui untuk mengenali itu, mereka tidak akan dapat berbuat banyak dengannya.
Cesium

Jawaban:

6

touch -t juga mengubah waktu pembuatan jika waktu modifikasi target sebelum waktu pembuatan asli.

SetFile dapat mengatur waktu pembuatan menjadi sebelum waktu modifikasi atau di masa depan.

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]" Notes:
           Enclose the string in quotation marks if it contains spa-
           ces. The date must be in the Unix epoch, that is, between
           1/1/1970 and 1/18/2038. If the year is provided as a two-
           digit year, it is assumed to be in the 21st century and
           must be from 00 (2000) through 38 (2038).

Ini akan mengatur waktu pembuatan ke waktu modifikasi:

SetFile -d "$(GetFileInfo -m test.txt)" test.txt

SetFile dan GetFileInfo adalah bagian dari paket alat baris perintah, yang dapat diunduh dari preferensi Xcode atau developer.apple.com/downloads .

Lri
sumber
Tegasnya "waktu kelahiran" ( crtime) dan ctime hal-hal yang berbeda (lihat Waktu pembuatan file di ZFS
G. Cito
Tentu saja waktu akses dan modifikasi seringkali sama - tetapi karena alasan yang berbeda. The touchdan stat halaman manual memiliki rincian. Saya tertarik untuk mengetahui bagaimana OpenZFS untuk OSX serta sistem file "asli" OSX menangani crtimebidang atau statlaporan apa untuk crtimeberbagai versi OSX.
G. Cito
-1

Mencoba:

cat filename > newfile
mv filename ~/.Trash/
mv newfile filename 

Itu seharusnya bekerja.

Sean Freitag
sumber
1
Anda masih harus menghapus yang asli. Ingmar sudah membahas ini.
Hippo
Aduh, seharusnya sudah membaca lebih baik. Tapi tidak, tidak ada cara yang lebih baik ...
Sean Freitag