Не могли бы вы сообщить мне, как я могу изменить дату создания файла в Lion. Я понимаю, что есть команда touch-t, но она не работает в Lion. Несколько человек упомянули другой способ, но я думаю, что они написали решение на языке «кодера», а не на языке неспециалистов - сможет ли кто-нибудь ответить на него так, как может выполнить неспециалист?
Большое спасибо за вашу помощь.
Ответы:
touch -t
обычно только изменяет время модификации и доступа. Это только изменяет время создания, если целевое время предшествует исходному времени создания.SetFile -d
всегда меняет время создания.SetFile является частью пакета инструментов командной строки, который можно загрузить с developer.apple.com/downloads или из предпочтений Xcode.
источник
+%Y%m%d%H%M.%S
(обратите внимание на точку между минутами и секундами)CpCreationDate
вfish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
В Mac OS X существует четыре разных отметки времени, связанные с файлом. Эти метки времени не всегда обновляются независимо друг от друга, но один может иметь некоторый индивидуальный контроль с небольшим количеством ухода и с использованием
touch
,SetFile
иchown
(илиchmod
). Чтобы увидеть это, давайте поэкспериментируем и создадим новый файл из командной строки#
:Первая указанная дата - это время последнего доступа (
atime
), вторая - время последнего изменения (mtime
), третья - последнее изменение статуса (ctime
), четвертая - время создания файла (рождение,Btime
), смman lstat
.Чтобы изменить время доступа (
atime
) к указанному времени, используйте:Чтобы изменить время модификации (
mtime
) и время создания файла (Btime
) на указанное время, используйте:Очевидно, это также автоматически обновляет время последнего изменения статуса (
ctime
) до текущего системного времени!Чтобы изменить только время создания / рождения (
Btime
) к данному времени, используйте (как предложено другими выше):Чтобы изменить только время последнего изменения статуса (
ctime
) на текущее системное время, используйте, например:где
username
находится владелец файла (как сообщаетstat
илиls -l
). Это не меняет владельца файла, но обращается к его индексу и записывает его как время последнего изменения статуса. К сожалению, здесь невозможно указать время явно, кроме как путем изменения времени компьютера ...Таким образом, чтобы иметь возможность независимо изменять четыре временные метки, можно использовать (в этом порядке для последних 3):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[вернуться к нормальной системной дате](Конечно, сброс системной даты не может быть безрисковой операцией, вы были предупреждены.)
источник
Команда командной строки
touch
работает в Lion, но вам нужно немного знать, как ее использовать.Во-первых, вам нужно ввести его, это не утилита, которая работает графически в окне. Место, где вы вводите это приложение под названием Terminal . Вы можете найти это в своей папке Utilities или использовать поиск Spotlight, чтобы найти его.
Как только вы запустите его, вы получите окно командной строки, где вы можете вводить команды. То, что вы печатаете, не означает, что это имеет какое-то отношение к кодированию, но для кого-то новичка в «старомодных» командах ОС это может выглядеть немного пугающим.
Итак, команда называется touch , и после команды вы можете передавать различные параметры, единственным обязательным является имя файла. Введите следующее, чтобы установить дату последнего изменения файла в текущее время:
Конечно, вам может понадобиться сначала найти файл, для чего могут потребоваться дополнительные команды. кд или Change Directory команда помогает здесь:
Или вы можете просто добавить полный путь к файлу как часть команды:
Более расширенное использование сенсорной команды позволяет вам указать время, которое вы хотите установить, а не использовать время при выполнении, установить доступ вместо времени модификации и т. Д. Это то, что делают такие параметры, как -t и другие. Некоторые устанавливают время, чтобы быть временем другого файла, некоторые устанавливают его для возврата назад или вперед во времени на величину X ( см. Здесь для более подробной информации), например:
Ниже приводится ссылка на эту страницу, которая также является полезным справочным материалом и отличным примером с некоторыми советами для тех, кому не нравится расположение файлов в командной строке.
Обратите внимание, что это изменит как атрибуты даты изменения, так и даты создания, только если ваш файл был создан после введенной вами даты. Это потому, что файл не может быть изменен до его создания. Если он создан до установленной вами даты, будет изменена только дата изменения.
источник
touch
изменяет дату изменения, а не дату создания файла.touch
с параметрами, которые вы указали выше, изменило модификацию, но не даты создания моего тестового файла.touch
действительно изменяет дату создания в зависимости от аргументов. Если указать дату модификации, предшествующую дате создания файла, дата создания автоматически изменится на новое значение даты изменения, поскольку файл нельзя изменить до его создания.creation
дату. Я был в состоянии изменитьaccess
иmodified
даты на «дату в прошлом», но это не изменило дату создания. Проверьте справочную страницу на предмет прикосновения, там не упоминается дата создания. Файловая система: Mac OS Extended (Журнальный, Зашифрованный). ИспользованиеSetFile -d "$(GetFileInfo -m test.txt)" file.txt
сработало отлично.Здесь намеки Грэйсса, в частности последний (от Лаури Ранта, ответили 21 августа в 15:21). Perfekt!
Теперь я использую простой рабочий процесс Automator для пакетного изменения нескольких файлов:
Сценарий оболочки:
Это работает как шарм.
источник
Самым простым способом, который я нашел, было создание новой папки, копирование всех подпапок серой папки в новую папку, и, вуаля, новая папка не выделяется серым цветом. Вы даже можете сделать это в поисковике.
источник