如何将所有文件/目录属性克隆/复制到不同的文件/目录上?

如何将所有文件/目录属性克隆/复制到不同的文件/目录上?

我想将一个目录的属性(所有权、组、ACL、扩展属性等)复制到另一个目录,但不复制目录内容本身。

这不起作用:

cp -v --attributes-only A B
cp: omitting directory `A'           

笔记:不一定是这样cp

答案1

经过在命令行上进行了大量的尝试和错误之后,我想我已经找到了答案。但这不是一个cp相关的答案。

rsync -ptgo -A -X -d --no-recursive --exclude=* first-dir/ second-dir

这会:

-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-o, --owner                 preserve owner (super-user only)
-g, --group                 preserve group
-d, --dirs                  transfer directories without recursing
-A, --acls                  preserve ACLs (implies --perms)
-X, --xattrs                preserve extended attributes
    --no-recursive          disables recursion

以供参考

    --no-OPTION             turn off an implied OPTION (e.g. --no-D)
-r, --recursive             recurse into directories

答案2

chmod --reference=first-dir second-dir

答案3

rsync -aAX --exclude='*' src_dir/ dst_dir

其中 dst_dir - 是目标目录。或者:

rsync -dADXgot src_dir dst_dir

其中 dst_dir - 是包含目标目录的目录,或者是不存在的目标目录。

来自 rsync 手册页:

    -a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
        --exclude=PATTERN       exclude files matching PATTERN

    -d, --dirs                  transfer directories without recursing
    -p, --perms                 preserve permissions
    -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
    -D                          same as --devices --specials
    -t, --times                 preserve modification times

答案4

我不明白,因为它似乎对其他人有用,但 rsync 方法对我来说在带有 ZFS 的 FreeBSD 上失败了。什么都没发生。然而让-弗朗索瓦·多克斯的方法是有效的。 (看:https://www.lesbonscomptes.com/pxattr/)源目录= A & 目标目录= B,来自原始问题。

pxattr -lR A > tmp.EAs

(编辑tmp.EAs第一行,将A目录改为B,s/A/B/)

pxattr -S tmp.EAs

相关内容