가끔가다 이런 명령어가 필요한 적이 있었다.
- 디렉터리 구조를 동일하게 파일을 복사하고 싶고
- 이를테면,
cp ./a/fld1/abc.txt ../backup/fld1/abc.txt
같은 경우에,fld1/abc.txt
를 굳이 중복해서 쓰고 싶지 않다던가!
- 이를테면,
- 모든 파일을 다 복사하고 싶지는 않고, 업데이트 된 파일만 복사하고 싶을 때
- 존재하는 파일들에 대해서만 업데이트 하고 싶을 때
찾아보니 rsync라는 좋은 명령어가 있어서 정리해 두기로 했다.
Parameters
언제나 그렇듯, man rsync
치면 다 나온다. 그 중에서 자주 쓰이는 몇 가지만 정리해 두면...
- -r, --recursive : 디렉터리 하위 내용까지 전부 복사
- -v, --verbose : 복사 내역 자세히 보여줌
- —include, —exclude : 특정 파일만(혹은 제외하고) 복사하고 싶을 때
- -z : 파일을 복사할 때 compressed로 전송함
- -a : archive 모드 — symlink, 권한, timestamp 정보들도 그대로 전달함.
보통 -zarv
형태로 파라미터 주고 많이 쓰는 듯.
Usage Example
디렉터리 동기화
rsync -zarv src/ dst
존재하는 파일만 동기화
# Assume:
# > ls src
# > a.txt b.txt c.txt
# > ls dst
# > a.txt
# Only update a.txt without copying b.txt and c.txt.
rsync -rv --existing src dst
'개발 > Developing' 카테고리의 다른 글
[Golang] defer과 value capture에 대해서 (0) | 2022.03.26 |
---|---|
[Golang] struct, tag, 그리고 reflect (0) | 2022.03.21 |
함수형 프로그래밍과 멀티 코어 (0) | 2022.03.17 |
Compiler Explorer (0) | 2022.03.05 |
[Git] 작업 환경 분리 - 저장소별 SSH Key 사용하기 (1) | 2022.03.02 |