대상에 파일이 존재하고 대상보다 최신인 경우에만 디렉터리를 반복적으로 복사합니다.

대상에 파일이 존재하고 대상보다 최신인 경우에만 디렉터리를 반복적으로 복사합니다.

대상에 파일이 존재하고 대상보다 최신인 경우에만 파일 및/또는 디렉토리를 복사할 수 있으며 디렉토리의 경우에는 파일을 복사해야 합니다.재귀적으로
다음과 같은 기능을 사용하여 복사합니다 .

 $ ls -a ~/.config
 gtk-2.0/             
 gtk-3.0/
 SpeedCrunch/

 $ ls -a /other/path/home/.config/
 gtk-2.0/             
 gtk-3.0/
 SpeedCrunch/


$ rsync -u --existing ~/.config /other/path/home/
skipping directory .

일할 수 없습니다.

어떤 Linux 유틸리티와 이를 수행/해결하는 방법은 무엇입니까? 전에 감사합니다

답변1

빠른:

재귀 스위치 "-r"을 포함하는 것을 잊었습니다.

rsync -u --existing -r ~/.config /other/path/home/

추가 사항:

또한 다음과 같이 몇 가지 중요한 속성을 보존하는 것 외에도 재귀를 포함하는 -a스위치를 사용하는 것을 고려할 수 있습니다 .-rlptgoD

  • -r: 디렉토리로 재귀
  • -l: 심볼릭 링크를 심볼릭 링크로 복사
  • -p: 권한 유지
  • -t: 수정 시간을 보존합니다.
  • -g: 보존 그룹
  • -o: 소유자 유지(수퍼유저만 해당)
  • -D: --devices --specials와 동일하게 특수 파일을 보존합니다.

테스트에는 다음을 사용하십시오.

mkdir src
touch src/file{1..3}
touch src/thefile
# Destination:
mkdir dst
touch dst/file{1..3}
touch -d 20201023 dst/thefile
# List all
free -D src dst

지금 시도해보세요:

rsync -rt -uPv --existing src dst/

나는 다음을 사용했다:

  • -r: 디렉토리로 재귀
  • -t: 수정 시간을 보존합니다.
  • -u: 수신기에서 최신 파일을 건너뜁니다.
  • -P: 전송 중 진행 상황 표시
  • -v: 자세한 내용을 늘립니다.
  • --existing: 수신기에서 새 파일 생성을 건너뜁니다.

관련 정보