파일이 대상에 존재하고 파일이 대상보다 최신이고 디렉터리의 경우 파일이 있어야 하는 경우에만 파일 및/또는 디렉터리를 어떻게 복사할 수 있습니까?재귀적으로
다음 기능을 사용한 복제
$ 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: 싱크에 새 파일 생성을 건너뜁니다.