반응형
개요
안녕하세요 피터입니다.
간혹 리눅스에서 cp 명령어로 파일 또는 디렉토리를 복사할 때 이미 존재하는 파일인 경우에 파일을 덮어쓸지 사용자에게 물어보는 경우가 있습니다.
[root@peterdev test]# cp test1.txt test2.txt
cp: overwrite ‘test2.txt’?
수동으로 복사할 경우에는 y를 입력하여 덮어쓰면 되는데, 여러 파일을 복사하는 경우에는 매 파일마다 y를 입력하는게 귀찮을 수 있습니다.
또한 스크립트로 자동화를 하는 경우에는 사용자에게 물어보는 절차를 생략하고 강제로 덮어쓰고 싶을 때가 있을 것입니다.
그런데 아래처럼 cp 명령어의 -f (강제 적용) 옵션을 사용해도 계속해서 사용자에게 덮어쓸 것인지 물어보는데 이런 경우는 alias 때문입니다.
[root@peterdev test]# cp -f test1.txt test2.txt
cp: overwrite ‘test2.txt’?
cp 라고만 입력해도 cp -i 옵션이 자동으로 들어가도록 alias가 적용되어 있기 때문에 -f 옵션이 듣지 않았던 것입니다.
사실 이러한 alias 는 mv 명령어도 마찬가지입니다.
[root@peterdev test]# alias | grep cp
alias cp='cp -i'
[root@peterdev test]#
[root@peterdev test]# alias | grep mv
alias mv='mv -i'
[root@peterdev test]#
이런 경우에는 아래와 같은 방법으로 해결할 수 있습니다.
1. 절대경로 사용
[root@peterdev test]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@peterdev test]# /usr/bin/cp -f test1.txt test2.txt
[root@peterdev test]#
which cp 로 cp 명령어의 경로를 확인한 뒤
절대경로로 명령어를 실행하면 alias가 적용되지 않습니다.
2. escape 문자 사용
[root@peterdev test]# \cp -f test1.txt test2.txt
[root@peterdev test]#
\(역슬래시)를 cp 명령어 앞에 붙여주면 마찬가지로 alias가 적용되지 않습니다.
둘 중 아무거나 편한 방법을 사용하시면 사용자에게 물어보지 않고 강제로 덮어쓸 수 있습니다.
마찬가지로 mv 명령을 사용할 때에도 같이 적용 가능합니다.
-Peter의 우아한 프로그래밍
여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.
반응형
'OS > Linux' 카테고리의 다른 글
[Linux] mv 파일 및 디렉토리 이동 (0) | 2018.05.09 |
---|---|
[Linux] find 로 파일 찾아서 지우기 (5) | 2018.05.08 |
[Linux] find 로 파일 검색하기 (0) | 2018.05.05 |
[Linux] cp 파일 및 디렉토리 복사 (0) | 2018.05.03 |
[Linux] ls (파일 목록 보기) (0) | 2017.04.03 |