Если я копирую какой-то файл из одного места в другое, используя cp
метку времени в скопированном файле, устанавливается время копирования.
Есть ли способ избежать этого?
Мне нужно копировать файлы без изменения их отметок времени.
cp -p
делает трюк. Для Linux :
-p
такой же как--preserve=mode,ownership,timestamps
-p
Заставьте cp сохранить следующие атрибуты каждого исходного файла в копии: время изменения, время доступа, флаги файла, режим файла, ACL, идентификатор пользователя и идентификатор группы, как разрешено разрешениями.
И для OS X :
-p
Заставьте cp сохранить следующие атрибуты каждого исходного файла в копии: время изменения, время доступа, флаги файла, режим файла, идентификатор пользователя и идентификатор группы, как это разрешено разрешениями. Списки контроля доступа (ACL) и расширенные атрибуты (EAs), включая ветки ресурсов, также будут сохранены.
cp -p
не только сохраняет отметку времени, но также режим и владельца и во FreeBSD, кроме времени модификации, он также сохраняет »время доступа, флаги файлов, режим файла, ACL, идентификатор пользователя и идентификатор группы, как это разрешено по разрешениям. «и на OS X дополнительно» Расширенные атрибуты, включая вилки ресурсов «.При использовании
cp
из GNU Coreutils для сохранения только временных отметок, а не атрибутов, таких как идентификатор пользователя, идентификатор группы или режим файла, существует условное обозначение,--preserve
которое позволяет явно указать список атрибутов, которые должны быть сохранены.Имейте в виду, что этот синтаксис, вероятно, не поддерживается другими Unices. Альтернативой может быть использование
--times
параметра,rsync
который должен быть доступен в большинстве установок.источник
-p
не правильный ответ.-p
сохраняет право собственности и режим. Который, возможно, не требуется .. и не был задан вопрос.В файловой системе Unix три раза: время доступа (atime), время модификации (mtime) и время изменения inode (ctime). Вы можете изменить время доступа и время модификации с помощью сенсорной программы, например
Однако вы не можете изменить время смены инода.
источник
Недавно мне нужно было сделать что-то похожее, но вместо этого использовать символическую ссылку. Чтобы создать символическую ссылку и сохранить оригинальную временную метку:
cp -ps src_file dst_symlink
источник