CentOS cp 강제로 덮어쓰기

1 개요[ | ]

리눅스 cp 강제로 덮어쓰기
리눅스 cp: overwrite 질문 무시하기
리눅스 cp alias 무시하기
우분투에는 cp에 대한 alias가 없어서 이러한 문제가 없음

2 문제상황[ | ]

[root@zetawiki ~]# echo hello > 1.txt
[root@zetawiki ~]# echo world > 2.txt
[root@zetawiki ~]# cp 1.txt 2.txt
cp: overwrite `2.txt'?
→ 1.txt를 2.txt로 복사하려고 하는데 overwrite 하겠냐고 물어본다.

수작업의 경우에는 y를 눌러주면 되지만, 스크립트를 통한 작업의 경우에는 키보드 입력을 요구하므로 스크립트 실행이 중단되는 문제가 있다.

[root@zetawiki ~]# cp -f 1.txt 2.txt
cp: overwrite `2.txt'?
→ -f 옵션을 주어도 소용없음

3 원인[ | ]

  • cp에 대한 alias로 -i 옵션[1]이 있어서 그렇다
[root@zetawiki ~]# alias | grep cp
alias cp='cp -i'
  • alias를 주석처리하거나 unalias하는 것도 방법이겠지만, 필자는 아래 2가지 방법을 추천한다.

4 해결방법 1: 역슬래시 추가[ | ]

아래와 같이 cp 앞에 역슬래시를 넣으면 alias 대신 원래의 명령어가 실행된다.

[root@zetawiki ~]# \cp 1.txt 2.txt
[root@zetawiki ~]# cat 2.txt
hello

5 해결방법 2: 전체경로 사용[ | ]

[root@zetawiki ~]# /bin/cp 1.txt 2.txt
[root@zetawiki ~]# cat 2.txt
hello

6 같이 보기[ | ]

7 주석[ | ]

  1. --interactive, 덮어쓸 때 대화식 진행

8 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}