Peter Ahn
Peter의 우아한 프로그래밍
Peter Ahn
전체 방문자
오늘
어제
  • 전체 (115)
    • 영어공부 (15)
    • 물생활 (9)
    • 독서 (2)
    • 일상 (1)
    • IT 소식 (15)
      • 최신 기술 소식 (10)
      • 보안 소식 (5)
    • 인공지능 (AI) (2)
    • OS (19)
      • Linux (19)
    • Web (0)
      • Vue.js (0)
    • 객체지향 (1)
      • 개념과 원리 (1)
      • 디자인패턴 (0)
    • 프로그래밍 (37)
      • C (14)
      • C++ (3)
      • C# (1)
      • Python (3)
      • Javascript (2)
      • Bash (4)
      • Vim (9)
    • Database (3)
      • DB2 (3)
      • MongoDB (0)
    • 프레임워크 (1)
      • Ionic (1)
    • Cloud (1)
      • AWS (1)
    • 3D Printer (2)
    • 기록보관소 (5)
    • 초대장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • 프로그래밍의 세계에 오신 것을 환영합니다.

인기 글

태그

  • 영어 회화
  • C언어
  • 어항
  • C++
  • vim 비주얼모드
  • 영어 표현
  • call by reference
  • 쉘 프로그래밍
  • 물생활
  • bash shell
  • 구피어항
  • Linux
  • 딥러닝
  • AI
  • 랜섬웨어
  • C언어 강좌
  • 하프블랙구피
  • 생활영어
  • vim 강좌
  • bash
  • 리눅스
  • vim
  • 영어표현
  • 인공지능
  • 리눅스 명령어
  • typescript
  • 프로그래밍
  • c강좌
  • 구피
  • 4차 산업혁명

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Peter Ahn

Peter의 우아한 프로그래밍

[Linux] cp 또는 mv 로 파일 강제로 덮어쓰기
OS/Linux

[Linux] cp 또는 mv 로 파일 강제로 덮어쓰기

2018. 5. 3. 14:32
반응형

 

개요

 

안녕하세요 피터입니다. 

간혹 리눅스에서 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
    'OS/Linux' 카테고리의 다른 글
    • [Linux] find 로 파일 찾아서 지우기
    • [Linux] find 로 파일 검색하기
    • [Linux] cp 파일 및 디렉토리 복사
    • [Linux] ls (파일 목록 보기)
    Peter Ahn
    Peter Ahn
    IT 정보 공유, 프로그래밍 지식 공유

    티스토리툴바