강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

결코 무시할 수 없는 cp의 복사 방법들

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

결코 무시할 수 없는 cp의 복사 방법들

 

다음은 앞에서 소개해드린 cp명령어의 예 외에 다양한 복사방법에 대한 옵션을 소개해 드리도록 하겠습니다.

 

 

 

 , cp명령어로 파일이나 디렉토리를 복사할 때에는 아래와 같은 다양한 방법의 복사방법이 존재합니다.

 

 

 

 

 

-a 옵션 (또는 --archive)

복사대상 원본파일의 속성(attribution)과 링크정보등을 그대로 유지하면서 복사하는 옵션입니다.

 

 

 

  , 이 옵션은 cp명령어 사용시 -cdpR옵션을 함께 사용한 것과 같은 역할을 합니다.

 

 

 

 

 

--backup 옵션

복사 수행시에 동일한 이름의 목적파일이 존재할 경우 복사 수행후에 백업본을 만듭니다.

 

 

 

 간단히 다음 예를 보시기 바랍니다.

 

 

 

 

[root@su250 ~]# ls -l

합계 20

-rw-r--r-- 1 root root   43 2008-12-2200:01 file1

-rw-r--r-- 1 root root   57 2008-12-2200:01 file2

[root@su250 ~]#

[root@su250 ~]# cp --backup file1 file2

cp: overwrite `file2'? y

[root@su250 ~]# ls -l

합계 24

-rw-r--r-- 1 root root   43 2008-12-2200:01 file1

-rw-r--r-- 1 root root   43 2008-12-2200:02 file2

-rw-r--r-- 1 root root   57 2008-12-2200:01 file2~

[root@su250 ~]#

위의 예에서 file2가 이미 존재하므로 기존 존재하고 있던 파일을 file2~라는 백업파일로 만든 후에 복사를 수행한 것입니다.

 

 

 

 

 

 

-b 옵션

복사하고자 하는 파일이 동일한 이름으로 이미 그 위치에 존재하고 있을 경우, 덮어쓰기 또는 원본을 지우고 복사할 경우에 원본파일의 복사본을 만들어둡니다.

 

 

 

 따라서 기본적으로는 --backup옵션과 같지만 다른 점은 인자를 받아들이지 않는다는 점입니다.

 

 

 

 

 

-f 옵션

복사대상파일이 이미 그 위치에 존재한다면 파일을 지우고 복사합니다.

 

 

 

 

 

-i 옵션

복사대상파일이 이미 그 위치에 존재한다면 덮어쓸 것인가 또는 복사하지 않을 것인가를 사용자에게 확인하는 절차를 가집니다.

 

 

 

 이 옵션은 이미 기본 앨리어싱되어 있습니다.

 

 

 

 

 

-P 옵션

복사대상이 되는 원본파일이 디렉토리경로와 함께 지정되었을 경우에 지정된 디렉토리경로를 그대로 복사합니다.

 

 

 

 즉 이 경우 원본파일은 dir1/subdir1/subdir2/filename등과 같이 디렉토리경로와 함께 지정되어야합니다.

 

 

 

 

 

-u 옵션 (--update)

복사되는 원본파일의 이름과 동일한 파일이 대상위치에 존재할 경우에 원본파일과 변경날짜를 비교하여 최신파일일 경우에 복사하지 않는 옵션입니다.

 

 

 

 , 원본파일이 목적파일 보다 최신 파일일 경우에만 복사하는 옵션입니다.

 

 

 

 

 

-r 옵션 또는 -R 옵션, 또는 --recursive옵션

여러분들도 잘 아시는 Recursive옵션입니다.

 

 

 

 , 복사대상이 서브디렉토리와 서브디렉토리의 서브디렉토리와 파일들이 존재할 경우에도 모두 동일하게 복사하는 옵션입니다.

 

 

 

 

 

-S 옵션 (또는 --suffix=확장자)

이 옵션은 원본파일과 동일한 이름의 파일이 이미 존재할 경우에 백업파일을 생성하지만, 백업파일의 끝에 붙여질 접미사(확장자)를 원하는 이름으로 지정하는 옵션입니다.

 

 

 

 간단한 아래 예를 보시기 바랍니다.

 

 

 

 

[root@su250 ~]# ls -l

합계 20

-rw-r--r-- 1 root root   43 2008-12-2200:01 file1

-rw-r--r-- 1 root root   26 2008-12-2200:14 file2

[root@su250 ~]#

[root@su250 ~]# cp -S .bak file1 file2

cp: overwrite `file2'? y

[root@su250 ~]#

[root@su250 ~]# ls -l

합계 24

-rw-r--r-- 1 root root   43 2008-12-2200:01 file1

-rw-r--r-- 1 root root   43 2008-12-2200:14 file2

-rw-r--r-- 1 root root   26 2008-12-2200:14 file2.bak

[root@su250 ~]#

 

위의 예에서 file2라는 파일이 이미 존재하고 있고, 복사본 파일을 생성할 때에 -S옵션에서 지정한 .bak라는 확장자를 사용하여 “file2.bak”라는 백업파일이 생성된 것입니다.

 

 

 

 만약 아무런 옵션을 사용하지 않았다면 백업파일은 생성되지 않았을 것이고, -S옵션 대신 --backup옵션이나 -b옵션등을 사용했다면 “file2.bak”대신 “file2~”라는 이름의 백업파일이 생성되었을 것입니다.

 

 

 

 

 

--preserve[=ATTR_LIST] 옵션

복사되어 새로 생성되는 파일에 대하여 원본파일과 동일한 속성을 가지도록 하는 옵션입니다.

 

 

 

 이때 속성을 별도로 지정해야합니다.

 

 

 

 만약 별도로 지정하지 않는다면 파일퍼미션모드(mode), 소유자정보(ownership), 시간정보(timestamps) 3가지 속성을 기본 적용합니다.

 

 

 

 이 외에 지정할 수 있는 속성들은 context, links등이 있으며 모든 속성을 지정하고자 할 경우에는 all을 사용하시면 됩니다.

 

 

 

 

 

-p옵션

복사되어 새로 생성되는 파일이 원본파일과 동일한 모드(mode), 소유자(ownership), 시간정보(timestamps)를 가지도록 하는 옵션입니다.

 

 

 

 이 옵션은 바로 위의 --preserve옵션에서 mode,ownership,timestamps 3가지 속성을 동시에 지정한 것과 같습니다.

 

 

 

 , “--preserve=mode,ownership,timestamps”를 사용한 것과 동일한 결과를 가집니다.

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,855 개
  • 현재 접속자 :  101 명