假设我的构建脚本创建了类似的内容:
build
├── [drwxr-xr-x pskocik pskocik ] bin
│ └── [-rwxr-xr-x pskocik pskocik ] FOO_bin
├── [drwxr-xr-x pskocik pskocik ] include
│ ├── [drwxr-xr-x pskocik pskocik ] FOO
│ │ ├── [-rw-r--r-- pskocik pskocik ] FOO_a.h
│ │ └── [-rw-r--r-- pskocik pskocik ] FOO_b.h
│ └── [-rw-r--r-- pskocik pskocik ] FOO.h
├── [drwxr-xr-x pskocik pskocik ] lib
│ ├── [-rw-r--r-- pskocik pskocik ] libFOO.a
│ └── [-rwxr-xr-x pskocik pskocik ] libFOO.so
└── [drwxr-xr-x pskocik pskocik ] share
└── [drwxr-xr-x pskocik pskocik ] man
├── [drwxr-xr-x pskocik pskocik ] man1
│ └── [-rw-r--r-- pskocik pskocik ] FOO.1.gz
└── [drwxr-xr-x pskocik pskocik ] man3
└── [-rw-r--r-- pskocik pskocik ] FOO.3.gz
8 directories, 8 files
复制这个的最好方法是什么,比如复制到/usr
or /usr/local
,这样
- 文件重新归属于 root:root
- 文件模式保持不变
- 这同样适用于目录节点,除非(可选)它们已经存在(在这种情况下,它们的所有权和模式保持不变)
?
答案1
使用rsync。
rsync -rltpDvh --chown root:root build/ /usr/
这意味着:
r
:递归l
:复制链接t
:保留时间戳p
:保留权限D
:--devices
v
: 详细h
:人类可读的进展
如果您还没有安装它,请先使用包管理来安装这个很棒的工具:)
相关内容: