Какие метаданные файла сохраняются cp по умолчанию?

По умолчанию, какие метаданные файлов сохраняют cp , а какие метаданные файлов отсутствуют? Например, если я прав, время mtime изменено, список доступа сохранен, и я хотел бы узнать о других метаданных (например, других временных меток, …).

Я ищу руководство по coreutils, но не могу найти ответ.

Несколько месяцев назад я проверил поведение cp когда целевой файл уже существует:

 $ ls -li total 12 913966 -rw-rw-r-- 1 vagrant vagrant 30 Dec 16 20:26 file1 913965 -rwxrw---- 2 pete vagrant 39 Dec 16 20:35 file2 913965 -rwxrw---- 2 pete vagrant 39 Dec 16 20:35 hardlinktofile2 $ cat file1 This is the contents of file1 $ cat file2 This is the original contents of file2 $ cp file1 file2 $ ls -li total 12 913966 -rw-rw-r-- 1 vagrant vagrant 30 Dec 16 20:26 file1 913965 -rwxrw---- 2 pete vagrant 30 Dec 16 20:37 file2 913965 -rwxrw---- 2 pete vagrant 30 Dec 16 20:37 hardlinktofile2 $ cat file1 This is the contents of file1 $ cat file2 This is the contents of file1 $ 

Как вы можете видеть, целевой файл перезаписывается на месте, и все его разрешения, права собственности, атрибуты и т. Д. Сохраняются – даже жесткие ссылки. Исходный файл никак не влияет на них.

Для mtime не было никакого смысла сохранять по умолчанию, и это не так. Но вы заметите, что новое mtime не взято из file1 – оно берется из текущего системного времени.

Вы можете выполнить аналогичный тест, не имея уже существующего целевого файла, но этот тест наглядно иллюстрирует точку: только фактическое содержимое файла копируется, когда не заданы никакие параметры. Владение файлами, разрешения, ACL, mtime, et. и др. не установлены в соответствии с исходным файлом, но вместо этого устанавливаются так же, как и для созданного файла. (Таким образом, разрешения по umask , mtime соответствии с текущим временем, право собственности в соответствии с EUID процесса cp и т. Д.)


Согласно info coreutils 'cp invocation' :

 `xattr' Preserve extended attributes if `cp' is built with xattr support, and xattrs are supported and enabled on your file system. If SELinux context and/or ACLs are implemented using xattrs, they are preserved by this option as well. некоторого `xattr' Preserve extended attributes if `cp' is built with xattr support, and xattrs are supported and enabled on your file system. If SELinux context and/or ACLs are implemented using xattrs, they are preserved by this option as well. 

Это не указывает, что расширенные атрибуты сохраняются любым другим способом, чем с этим флагом.