Скопируйте файл и сохраните ту же временную метку исходного файла

26

Мне нужно скопировать файл и после этого мне нужно изменить атрибуты метки времени как исходный файл. Как это сделать с помощью терминала или любым другим способом.


источник
6
Почему именно "после этого" ? Вы можете сохранить метку времени (и другие атрибуты) во время копирования, используя опцию -pили, --preserve=например,cp -p oldfile newfile
steeldriver
3
@steeldriver Технически сам cp тоже делает это потом. Пожалуйста, cp --preserve=timestamps ответьте
Себастьян Старк

Ответы:

15

Если вы хотите сохранить оригинальные метки времени, используйте

$ touch -r <original_file> <new_file>

Это копирует метки времени из другого файла.

См. Этот пост в блоге для получения дополнительной информации: поддельный доступ к файлам, изменение и изменение меток времени

wjandrea
источник
52

Вы можете сохранить временную метку исходного файла при копировании с cpпомощью опции -pили --preserve:

   -p     same as --preserve=mode,ownership,timestamps

   --preserve[=ATTR_LIST]
          preserve the specified attributes (default: mode,ownership,time‐
          stamps), if  possible  additional  attributes:  context,  links,
          xattr, all

Таким образом, чтобы сохранить только метку времени

cp --preserve=timestamps oldfile newfile

или сохранить режим и собственность, а также

cp --preserve oldfile newfile

или

cp -p oldfile newfile

Для рекурсивного копирования доступны дополнительные параметры - распространенным является cp -a( cp --archive), который дополнительно сохраняет символические ссылки.

steeldriver
источник