Unix "cp -p". Могу ли я сохранить атрибуты выборочно?

Я хотел бы скопировать время модификации и доступа, но не идентификатор пользователя. Если я использую

cp -p source target

Это скопирует все.

Я пытаюсь скопировать файлы другому пользователю, но сохраняю исходные даты без изменений.

2 ответа

От cp руководство по GNU coreutils:

-p такой же как --preserve=mode,ownership,timestamps

Итак, вы ищете

cp --preserve=mode,timestamps source target

Но если вы используете какую-то не-GNU операционную систему, вы не сможете использовать эти длинные опции с cp, В этом случае вы можете дать rsync Попробуйте, где вы можете детально указать, какие атрибуты должны быть сохранены (поиск на странице man для "preserve"):

    -H, --hard-links            preserve hard links
    -p, --perms                 preserve permissions
    -E, --executability         preserve executability
    -A, --acls                  preserve ACLs (implies -p)
    -X, --xattrs                preserve extended attributes
    -o, --owner                 preserve owner (super-user only)
    -g, --group                 preserve group
        --devices               preserve device files (super-user only)
        --specials              preserve special files
    -t, --times                 preserve modification times

Итак, чтобы напомнить cp команда выше, используйте что-то вроде

rsync -pEt source target

Чтобы проверить команду заранее, вы можете запустить "пробный запуск" с -n, Добавьте также подробный параметр -v чтобы увидеть, что происходит:

rsync -nv -pEt source target

Однако я не уверен, будет ли скопировано время доступа.

Я считаю, что команда Ditto сохраняет даты.

то же самое цель

Другие вопросы по тегам