Mac: ファイルの作成日と更新日を変更するコマンド - setfile

Mac: ファイルの作成日と更新日を変更するコマンド - setfile

July 31, 2022

のっぴきならない事情があってファイルの作成日・更新日を変更したいときは setfile コマンドが使えます。

setfile -d "12/24/2020 19:00" example.txt
setfile -m "12/24/2020 19:00" example.txt

-d オプションで作成日を変更、-m オプションで更新日を変更します。

日時の指定は mm/dd/yyyy 形式であることにご注意ください。なお時間部分は省略可能です。

その他オプションは以下の通りです。例えば -c でファイルの作成者が変更できます。

setfile -h

Usage: SetFile [option...] file...
    -a attributes     # attributes (lowercase = 0, uppercase = 1)*
    -c creator        # file creator
    -d date           # creation date (mm/dd/[yy]yy [hh:mm[:ss] [AM | PM]])*
    -m date           # modification date (mm/dd/[yy]yy [hh:mm[:ss] [AM | PM]])*
    -P                # perform action on symlink instead of following it
    -t type           # file type

ファイル変更日だけなら touch コマンドでも可能 #

(これまで touch はファイル作成のコマンドだと思ってました。。。)

ファイルの「変更日」を変えるのであれば touch コマンドでも可能です。しかし残念ですが「作成日」はこのコマンドでは変更できません。

man touch で開いたマニュアルが以下。

TOUCH(1)                     General Commands Manual                    TOUCH(1)

NAME
     touch – change file access and modification times

SYNOPSIS
     touch [-A [-][[hh]mm]SS] [-achm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]]
           [-d YYYY-MM-DDThh:mm:SS[.frac][tz]] file ...

DESCRIPTION
     The touch utility sets the modification and access times of files.  If any
     file does not exist, it is created with default permissions.

     By default, touch changes both modification and access times.  The -a and
     -m flags may be used to select the access time or the modification time
     individually.  Selecting both is equivalent to the default.  By default,
     the timestamps are set to the current time.  The -d and -t flags explicitly
     specify a different time, and the -r flag specifies to set the times those
     of the specified file.  The -A flag adjusts the values by a specified
     amount.

     The following options are available:

     -A      Adjust the access and modification time stamps for the file by the
             specified value.  This flag is intended for use in modifying files
             with incorrectly set time stamps.

             The argument is of the form “[-][[hh]mm]SS” where each pair of
             letters represents the following:

                   -       Make the adjustment negative: the new time stamp is
                           set to be before the old one.
                   hh      The number of hours, from 00 to 99.
                   mm      The number of minutes, from 00 to 59.
                   SS      The number of seconds, from 00 to 59.

             The -A flag implies the -c flag: if any file specified does not
             exist, it will be silently ignored.

     ...