it-swarm-ko.tech

소유자와 권한을 그대로 유지 한 폴더를 어떻게 복사합니까?

따라서 홈 폴더를 다음과 같이 외장 드라이브에 복사하여 백업하려고했습니다.

Sudo cp -r /home/my_home /media/backup/my_home

결과적으로 외부 드라이브의 모든 폴더는 이제 root:root. cp에서 원본의 소유권과 권한을 유지하려면 어떻게해야합니까?

410
Psachnodaimonia
Sudo cp -rp /home/my_home /media/backup/my_home

Cp 맨 페이지에서 :

 -p     same as --preserve=mode,ownership,timestamps

 --preserve[=ATTR_LIST]
          preserve the specified attributes (default: mode,ownership,timestamps),
          if possible additional attributes: context, links, xattr, all
496
guido

rsync를 사용할 수도 있습니다.

Sudo rsync -a /home/my_home/ /media/backup/my_home/

rsync 맨 페이지에서 :

 -a, --archive
              This  is  equivalent  to  -rlptgoD.  It  is a quick way of saying you want
              recursion and want to preserve almost everything (with -H being a  notable
              omission).    The   only  exception  to  the  above  equivalence  is  when
              --files-from is specified, in which case -r is not implied.

              Note that -a does not preserve hardlinks, because finding  multiply-linked
              files is expensive.  You must separately specify -H.

cprsync의 비교를 보려면이 질문을 참조하십시오. https://stackoverflow.com/q/6339287/406686

슬래시를주의하십시오 (자세한 내용은 맨 페이지를 참조하십시오).

98
student
cp -a

-a--archive의 약자입니다. 기본적으로 디렉토리는 그대로 그대로 복사합니다. 파일은 모든 속성을 유지하며 심볼릭 링크는 역 참조되지 않습니다 (-d).

man cp에서 :

   -a, --archive
          same as -dR --preserve=all
68
Zaz

cp -pdRx를 사용하여 -p 보존 모드, 소유권 및 타임 스탬프, -d 링크 유지 (따라서 파일 내용이 복사되는 대신 심볼릭 링크가 표시됨), -R 재귀 적으로 -x는 하나의 파일 시스템에 유지됩니다 (/ 또는 활성 마운트 포인트가있는 파일을 복사하는 경우에만 실제로 유용합니다).

PS : -R 대신 -rls -lR를 사용하는 습관입니다.

21
StarNamer

cp에는 파일 소유권을 유지하는 옵션이 있습니다. cp의 매뉴얼 페이지에서 :

-p    Cause cp to preserve the following attributes of each source file in the copy: modification
      time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions.
      Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also
      be preserved.
14
Matteo

다음과 같이 할 수 있습니다 :

tar cf - my_home | (cd /media/backup; Sudo tar xf - )

tar는 권한, 소유권 및 디렉토리 구조를 그대로 유지하지만 모든 것을 바이트 스트림으로 변환합니다. 디렉토리를 변경하는 "서브 쉘"(괄호로 묶은 명령)을 실행 한 다음 tar를 가져와 변환을 취소하십시오. 바이트 스팀은 올바른 소유권과 권한을 가진 디렉토리와 파일이됩니다.

12
Bruce Ediger

대답은 간단합니다. cp에는 권한을 유지하는 -p 옵션이 있습니다 (물고기는 여기 있습니다).

그러나 Wojtek이 그의 의견에서 말했듯이 man cp (좋은 매뉴얼을 읽는 것)은 좋은 출발점이 될 것입니다 (물고기를 배우는 방법을 배우고 싶습니까?).

8
buckdeer

preserve = all을 사용할 수 있으면 사본은 파일의 소유자, 그룹 및 타임 스탬프와 같은 모든 속성을 유지합니다. 따라서 다음 명령을 사용하여 안전하게 백업하십시오.

cp -r --preserve=all /home/my_home /media/backup/my_home
3
Majid Zarrin