본문 바로가기

IT/리눅스 Linux

Tar 명령어로 쉽게 디렉토리 복사하기 (원격, 로컬)

반응형

유닉스나 리눅스 시스템 관리자들은 아마 다들 알고 계신 내용이겠지만 한번 정리해 봅니다.

파일 시스템 간에 디렉토리 구조 및 소유자(ownership), 권한 (permission) , timestamp 등 속성을 그대로 유지한 채로 복사하는데 tar 를 아래처럼 사용합니다.

 

cd /복사원본디렉토리

tar cf - * |  (cd /복사할디렉토리; tar xfp -)

명령어의 파이프(|) 전의 앞부분에서는 복사원본을 아카이브로 생성시키는데, 파일로 쓰는 대신에 standard out 으로 아카이브를 출력합니다. ( cf 다음에 오는 - 의 의미가 standard output 입니다)

앞 부분의 tar가 생성시킨 아카이브가 stadnard output을 통해 파이프로 전달되고, 해당 내용을 받아서 타겟 디렉토리로 이동한 후, 아카이브를 다시 원본 데이터로 풀게 됩니다.

두 번째 tar 의 p 옵션이 없으면 원본의 퍼미션이나 소유자 정보가 유지되지 않으므로 주의하세요.

 

다음은 원격 서버로 복사하는 방법인데요, ssh를 이용하는 것을 제외하면 로컬서버 내의 복사와 거의 동일합니다.

 

cd /복사원본디렉토리

tar cf - * |  ssh 원격호스트주소 "tar xfp - -C 복사할 디렉토리"

 

하나의 차이는 아카이브를 푸는 tar에서 -C 옵션으로 디렉토리를 지정했다는 점인데요, 어떤 방식을 쓰셔도 결과는 같으니 취향에 따라 쓰시면 되겠습니다.

 

 

반응형