По разным причинам иногда возникает необходимость изменить дату и время создания файла. Или изменить дату и время изменения файла. Есть несколько способов на Mac OS X изменить дату и время создания файла, а также дату и время модификации файла.
Утилита touch
Вариант изменения даты модификации через консольную утилиту touch.
Ключ -t позволяет изменить время доступа и модификации на указанное время.
Дата и время указывается в следующем формате (ГГГГММДДччмм.сс):
ГГГГ – год
ММ – месяц (01-12)
ДД – день месяца (01-31)
чч – часы (00-23)
мм – минуты (00-59)
сс — секунды (00-59)
Пример установки даты и времени на 21.02.2018 03:49:27
Зададим год 2018, месяц 02, день 21, час 03, минут 49, и 27 секунд. Секунды можно не указывать, тогда их не пишем (и точку тоже нужно убрать).
Как это выглядит в команде: 201802210349.27
Установить дату модификации и последнего открытия файла
# Устанавливается одновременно: # Установить дату и время модификации файла в 21.02.2018 03:49:27 # Установить дату и время последнего доступа к файлу в 21.02.2018 03:49:27 touch -t 201802210349.27 /home/users/admin/foto.jpg
Примечание:
Если устанавливаемая нами дата больше, чем дата создания файла, то будет изменена только метка времени модификации, то есть дата изменения файла и метка времени последнего доступа к файлу. А если мы устанавливаем время модификации меньше, чем текущая дата создания файла, то изменится не только дата модификации файла, но и и дата создания файла.
Установить текущую дату модификации и последнего открытия файла
# Устанавливается одновременно: # Установить текущую дату и время модификации файла. # Установить текущую дату и время последнего доступа к файлу. touch -am /home/users/admin/foto.jpg
Установить дату создания файла в прошлом
# Устанавливается одновременно: # Установить дату и время создания файла в прошлом (от текущей даты файла) # Установить дату и время модификации файла в 21.02.2018 03:49:27 # Установить дату и время последнего доступа к файлу в 21.02.2018 03:49:27 touch -t 201503240122.17 /home/users/admin/foto.jpg
Примечание:
Вы можете сразу не увидеть изменения даты по пункту "последний доступ к файлу", т.к. оно кешируется системой. Но если вы сделаете копию (дублирование) файла, вы увидите, что дата последнего открытия файла изменилась.
На этом к сожалению все с утилитой touch. Эта утилита не позволяет изменить дату создания файла в плюс (будущее) от текущей даты файла. Также магическим образом не работают остальные ключи утилиты, несмотря на их привлекательное описание в man BSD.
Но есть еще один вариант изменения некоторых дат.
Утилита SetFile
Утилита setfile позволяет устанавливать и изменять атрибуты файлов в файловой системе HFS+ (Mac OS Extented). Вот она то и потребуется нам, чтобы мы могли установить/заменить дату создания файла. Для работы утилиты требуется установка инструментов разработчика, то есть пакета Xcode.
Установить любую дату создания файла
# Установить любую дату и время создания файла /usr/bin/SetFile -d '12/30/2017 12:00:00 PM' /home/users/admin/foto.jpg
Установить дату изменения файла
# Установить дату и время изменения файла. /usr/bin/SetFile -m '12/31/2017 12:10:00 PM' /home/users/admin/foto.jpg
Примечание:
Если устанавливаемая нами дата модификации файла старше (меньше) текущей даты создания файла, то тогда также изменятся и дата создания файла и дата последнего открытия файла. Но тем не менее, если это нужно (не знаю, зачем), после этой команды можно установить/восстановить произвольно нужную дату создания файла, выполнив еще раз команду с флагом -d.
В помощь:
Как посмотреть информацию о датах о файле через консоль (терминал)?
Чтобы посмотреть всю информацию о файле или конкретно по указанным типам дат, можно воспользоваться консольной утилитой stat
# Посмотреть всю информацию о файле stat /home/users/admin/foto.jpg # Посмотреть время последнего обращения к файлу (открытия) stat -f %Sa /home/users/admin/foto.jpg # Посмотреть время последнего изменения файла stat -f %Sm /home/users/admin/foto.jpg # Посмотреть время добавления файла в систему stat -f %Sс /home/users/admin/foto.jpg # Посмотреть дату создания файла stat -f %SB /home/users/admin/foto.jpg
В итоге с помощью двух таких разных утилит мы можем решить не одну, так другую задачу.
Теперь, как мы видим, реально доказать дату создания файла невозможно, равно как и нельзя определить, были ли эти даты изменены. Так что доверять датам по свойствам файла нельзя, т.к. эти метки могут быть легко изменены.
7 комментариев к “Как в Mac OS X изменить дату создания или модификации файла”