패턴을 사용하여 나무 복사

패턴을 사용하여 나무 복사

내 빌드 스크립트가 다음과 같은 것을 생성한다고 가정해 보겠습니다.

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복사 하는 가장 좋은 방법은 무엇입니까?/usr/local

  • 파일의 속성이 root:root로 다시 지정됩니다.
  • 파일 모드는 변경되지 않습니다.
  • (선택적으로) 이미 존재하지 않는 한 디렉터리 노드에도 동일하게 적용됩니다(이 경우 소유권과 스키마는 변경되지 않습니다).

?

답변1

rsync를 사용하세요.

rsync -rltpDvh --chown root:root build/ /usr/

이는 다음을 의미합니다.

  • r:재귀
  • l:링크 복사
  • t: 타임스탬프 유지
  • p: 권한 유지
  • D:--devices
  • v: 상세
  • h: 사람이 읽을 수 있는 진행 상황

아직 설치하지 않았다면 먼저 패키지 관리를 사용하여 이 멋진 도구를 설치하세요 :)

관련 정보:

관련 정보