
대상에 파일이 존재하고 대상보다 최신인 경우에만 파일 및/또는 디렉토리를 복사할 수 있으며 디렉토리의 경우에는 파일을 복사해야 합니다.재귀적으로
다음과 같은 기능을 사용하여 복사합니다 .
$ 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: 수신기에서 새 파일 생성을 건너뜁니다.