리눅스 cp 사용 시 자동으로 overwrite 처리하기

개인적으로 서버에서 cp 명령어를 사용할 때, 종종 overwrite를 해야하는 경우가 많이 있습니다.

기본적으로 cp에는 alias(별명)이 적용이 되어있는데, 그 내용은 다음과 같습니다.

 

alias cp='cp -i'

 

위 alias는 콘솔에서 alias 입력 후 엔터를 치면 확인할 수 있습니다.

 

위와 같이 설정되어있는 경우, 파일이 적으면 그냥 y를 파일마다 누르면서 넘어가겠지만 그 수가 많은 경우에는 y를 눌러 복사를 수행하기가 매우 불편합니다.

가장 간편한 방법은, unalias cp 명령어를 통해 적용되어있는 cp에 대한 alias를 해제시켜주는 것입니다.

그렇게 되면 현재 터미널 세션이 유지되는 동안 cp에 대한 -i 옵션(interactive)을 사용하지 않은 cp 명령어를 사용할 수 있게 됩니다.

 

이후, -Rf 옵션을 추가적으로 부여하여, 하위 디렉토리의 내용까지 함께 복사하도록 요청합니다.

/home/data 디렉토리 안에 들어있는 모든 파일 및 디렉토리를 /data 디렉토리로 복사하는 경우, 다음과 같이 사용할 수 있습니다.

 

cp -Rf /home/data/* /data

 

-f옵션(–force)에 의해 현재 사용중이 아닌 파일인 경우 해당 파일을 삭제하고 새로운 파일을 쓰게끔 작업이 진행됩니다.

-R옵션(–recursive)에 의해 해당 디렉토리의 하위 디렉토리도 함께 복사할 수 있게 됩니다.

리눅스에서는 -r로 -R을 대신할 수 있습니다. (완전히 동일한 의미)

 

위 방법 이 아닌 다른 방법이 여러가지 있겠지만, 위의 경우가 가장 간단하게 적용할 수 있는 방법이라고 생각합니다.

 

다음의 방법도 적용할 수 있습니다.

 

yes | cp -rf xxx yyy

 

위 명령어를 통해 xxx파일을 yyy로 만약 overwrite해야하는 경우 자동으로 yes를 입력한 것과 같이 처리해줍니다.

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.