Unix“cp -p”。我可以选择性地保留属性吗?

Unix“cp -p”。我可以选择性地保留属性吗?

我想复制修改和访问时间,但不复制用户 ID。如果我使用

cp -p source target

它将复制所有内容。

我正在尝试将文件复制到其他用户但保持原始日期不变。

答案1

摘自cp手册GNU coreutils

-p 与...一样--preserve=mode,ownership,timestamps

所以,你正在寻找

cp --preserve=mode,timestamps source target

但是如果你使用一些非 GNU 操作系统,你可能无法使用这些长选项cp。在这种情况下,你可以rsync尝试一下,你可以详细指定应该保留哪些属性(在手册页中搜索“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

然而,我不确定,如果使用权时间也会被复制。

答案2

我相信 ditto 命令会保留日期。

同上 src 目标

相关内容