rsync 의 exclude 항목을 좀 더 많이 넣어보자.

in #kr-game6 years ago (edited)

롬의 수가 많아지면서, 폴더 관리도 점차 어렵게 되어가고, 개중에 싱크시키면 안되는 파일/폴더가 점점 많이 생기기 시작했다. 이게 점점 커지기 시작해서 컴퓨터 하드디스크의 공간을 잡아먹는 괴물이 되어 있는 경우도 있다. 더욱이 지금 당장은 지울수 없는 사정이 있어 남겨두기는 해야 하는데, 이 때 사용하는게 exclude 항목이다. 지정한 그 항목만 따로 싱크를 제외함으로서 내 컴퓨터의 용량 다이어트가 가능했다.

rsync -avzO --delete --exclude="제외할 항목" -e 'ssh -p 22' 소스경로/roms/ 목적지경로/roms

그런데 exclude 항목이 생각보다 많았고, 너무 길어서 이윽고 한 화면에서 볼 수 없는 정도 까지 되었다.

rsync -avzO --delete --exclude="제외할 항목1" --exclude="제외할 항목2" --exclude="제외할 항목3" --exclude="제외할 항목4" --exclude="제외할 항목5" --exclude="제외할 항목6" -e 'ssh -p 22' 소스경로/roms/ 목적지경로/roms

그래서 이걸 또 종합해서 conf 파일처럼 불러오는 방법이나 추려내는 방법이 없을까? 해서 찾아보았는데 있었다. --exclude-from= 이라는 옵션을 사용하여, 파일을 불러오면 되는거였다.

rsync -avzO --delete --exclude-from="절대경로/nasrsync-excludeme.list" -e 'ssh -p 22' 소스경로/roms/ 목적지경로/roms

방법은 간단하다. 위 내용을 예로 들어 우선 nasrsync-excludeme.list 파일을 만들어 제외할 파일 및 폴더들을 기록한다.

nasrsync-excludeme.list 파일내용

dos
xbox
mame
mame-libretro
fba_libretro
.nosync
@eaDir
_readme.txt
_lisezmoi.txt
download_images
.DS_Store
downloaded_images

그런 다음 rsync 명령에 --exclude-from="..." 옵션을 이용해서 파일을 불러들이면 된다.

여기서 주의해야 할 점은 사용할 nasrsync-excludeme.list의 경로를 절대경로로 지정해줘야 한다는 점이다.