맨위로가기

Cp (유닉스)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

cp는 유닉스 운영체제에서 파일을 복사하는 데 사용되는 명령어이다. cp는 두 개의 파일 경로를 인수로 받아 첫 번째 파일의 내용을 두 번째 파일로 복사하거나, 여러 파일과 디렉터리를 대상 디렉터리로 복사하는 등 세 가지 주요 작동 모드를 가진다. 다양한 옵션을 통해 복사 동작을 제어할 수 있으며, 파일 덮어쓰기, 심볼릭 링크 처리, 권한 보존 등의 기능을 제공한다.

더 읽어볼만한 페이지

  • 파일 복사 유틸리티 - Robocopy
    Robocopy는 윈도우에 내장된 강력한 파일 복사 유틸리티로, 네트워크 중단 시 복구, 파일 정보 보존 등 다양한 기능을 제공하며, 명령줄 인터페이스와 GUI 프런트 엔드를 지원한다.
  • 파일 복사 유틸리티 - Copy (명령어)
    `copy`는 팀 패터슨의 SCP 86-DOS에서 처음 지원되어 MS-DOS를 비롯한 다양한 운영 체제에서 파일 복사, 이동, 백업 등에 사용되는 명령어이며, 유닉스 계열의 `cp`나 CP/M의 `PIP`와 유사한 기능을 수행한다.
  • 표준 유닉스 프로그램 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 표준 유닉스 프로그램 - Rm (유닉스)
    유닉스 명령어 `rm`은 파일을 삭제하는 데 사용되며, 옵션을 통해 삭제 동작을 제어하고 디렉터리를 재귀적으로 삭제할 수 있지만, 잘못 사용하면 시스템에 심각한 손상을 초래할 수 있어 주의가 필요하며 안전 장치나 휴지통 기능 등의 대안이 존재한다.
  • 유닉스 SUS2008 유틸리티 - AWK
    AWK는 1977년에 개발된 텍스트 처리 및 프로그래밍 언어로, 유닉스 환경에서 텍스트 처리를 위해 설계되었으며 정규 표현식 처리 기능을 통해 텍스트 분석, 데이터 추출, 보고서 생성 등 다양한 작업을 수행한다.
  • 유닉스 SUS2008 유틸리티 - 로케일
    로케일은 소프트웨어 국제화 및 지역화에서 사용자 문화적 배경에 맞춰 사용 환경을 조정하는 설정으로, 표시 언어, 숫자/날짜 형식, 문자 분류, 통화 형식 등을 포함한다.
Cp (유닉스) - [IT 관련 정보]에 관한 문서
기본 정보
명령어 종류유닉스 명령어
용도파일 복사
사용법
옵션
-a아카이브 모드, 파일 속성, 심볼릭 링크 등을 보존하여 복사
-f대상 파일이 존재하면 강제로 삭제 후 복사
-i덮어쓰기 전에 사용자에게 확인
-l하드 링크 생성
-p파일 속성 (소유자, 그룹, 권한, 시간 정보) 보존
-r, -R디렉터리를 재귀적으로 복사
-s심볼릭 링크 생성
-u원본 파일이 대상 파일보다 새로운 경우에만 복사
-v복사되는 각 파일의 이름을 출력

2. 사용법

`cp` 명령어는 세 가지 주요 작동 모드를 가진다. 이 모드들은 명령어 실행 시 주어지는 인자의 유형과 개수에 따라 결정된다.


  • 두 개의 파일 경로 이름이 인수로 주어지면, `cp`는 첫 번째 파일의 내용을 두 번째 파일로 복사한다. 필요한 경우 두 번째 파일을 생성한다.
  • 하나 이상의 파일 경로 이름 인수와 그 뒤에 디렉터리 경로 인수가 오면, `cp`는 각 원본 파일을 대상 디렉터리로 복사한다. 아직 존재하지 않는 파일은 생성한다.
  • 두 개의 디렉터리 경로 이름이 인수로 주어지는 경우, `cp`는 원본 디렉터리의 모든 파일을 대상 디렉터리로 복사하며, 필요한 파일이나 디렉터리를 생성한다. 이 모드는 일반적으로 `-r` 옵션 플래그를 사용하여 디렉터리의 재귀적 복사를 나타낸다. 대상 디렉터리가 이미 존재하면 원본 디렉터리가 대상 디렉터리 안으로 복사되고, 대상 디렉터리가 존재하지 않으면 새로운 디렉터리가 생성된다.


파일을 다른 파일로 복사하는 방법은 다음과 같다:

```

cp [-fHip][--] 원본파일 대상파일

```

파일(들)을 디렉터리로 복사하는 방법은 다음과 같다:

```

cp [-fHip] [--] 원본파일... 대상디렉터리

```

디렉터리를 디렉터리로 복사하는 방법은 다음과 같다(-r 또는 -R을 사용해야 함):

```

cp -r|-R [-fHip] [--] 원본디렉터리... 대상디렉터리

3. 옵션


  • `-f` (강제) – 쓰기 작업으로 열 수 없는 경우 대상 파일을 제거하도록 지정한다. 제거는 `cp` 명령어가 수행하는 모든 복사 작업보다 먼저 수행된다.[1]
  • `-H` (역참조) – `cp` 명령어가 심볼릭 링크를 따라가도록 하여 대상에 대한 심볼릭 링크가 아닌 대상 파일을 대상에 갖도록 한다.[1]
  • `-i` (대화형) – 덮어쓸 파일의 이름으로 프롬프트를 표시한다. 이것은 ''대상 디렉터리'' 또는 ''대상 파일'' 매개변수에 ''SourceFile'' 또는 ''SourceDirectory'' 매개변수에 지정된 파일과 동일한 이름을 가진 파일이 포함된 경우 발생한다. `y`를 입력하면(또는 로캘에 해당하는 `y`), `cp` 명령어가 계속된다. 다른 응답은 `cp` 명령어가 파일을 덮어쓰는 것을 방지한다.[1]
  • `-n` (덮어쓰기 없음) – 실수로 파일을 덮어쓰는 것을 방지한다.[1]
  • `-p` (보존) – `-p` 플래그는 해당 대상의 각 소스 경로에 대한 다음 특성을 보존한다. ''마지막 데이터 수정'' 시간 및 ''마지막 액세스'' 시간, 소유권(이 작업을 수행할 권한이 있는 경우에만 해당) 및 파일 권한 비트이다.[1]
  • `-R` 또는 `-r` (재귀) – 디렉토리를 재귀적으로 복사한다.[1]


아래는 위에 나열된 옵션들에 대한 추가 설명이다.

  • '''-f''' (강제) – 복사 대상에 이미 파일이 존재하고, 쓰기용으로 열기에 실패하면 삭제를 시도한다. 삭제는 해당 명령으로 복사하기 전에 수행된다.[1]
  • '''-i''' (대화형) – 복사 대상에 이미 파일이 존재할 경우, 사용자에게 덮어쓸지 여부를 묻는다. y를 입력하면 복사를 계속한다. 그 외에는 덮어쓰기를 수행하지 않는다.[1]
  • '''-p''' (유지) – SourceFile/SourceDirectory의 다음 속성을 해당 TargetFile/TargetDirectory에도 설정한다.[1]
  • 최신 업데이트 시간 및 최신 액세스 시간[1]
  • 소유자의 사용자 ID와 그룹 ID (설정 가능한 권한인 경우)[1]
  • 파일 권한 (Setuid 및 SGID 비트 포함)[1]
  • '''-R''' (재귀적) – 디렉토리를 재귀적으로 복사한다.[1]

4. 예제

파일을 현재 디렉터리로 복사하려면 다음과 같이 입력한다.

```

cp prog.c prog.bak

```

prog.c를 prog.bak로 복사한다. prog.bak 파일이 없다면 cp 명령어가 새로 만든다. 파일이 있다면 prog.c 파일의 내용으로 덮어쓴다.

현재 디렉터리 안의 파일을 다른 디렉터리로 옮기려면 다음과 같이 입력한다.

```

cp jones /home/nick/clients

```

jones 파일을 /home/nick/clients/jones로 복사한다.

파일을 복사하면서 수정 날짜, 시간, 접근 제한 목록을 유지하려면 다음과 같이 입력한다.

```

cp -p smith smith.jr

```

smith 파일을 smith.jr 파일로 복사한다. smith.jr 파일에 smith 파일과 같은 날짜와 시간을 부여하고, 접근 제한도 동일하게 유지한다.

디렉터리 안의 모든 파일을 새로운 디렉터리로 복사하려면 다음과 같이 입력한다.

```

cp /home/janet/clients/* /home/nick/customers

```

cilents 디렉터리의 파일만 customers 디렉터리로 복사한다.

모든 파일과 하위 디렉터리를 포함하여 디렉터리 전체를 복사하려면 다음과 같이 입력한다.

```

cp -R /home/nick/clients /home/nick/customers

```

clients 디렉터리와 그 안의 모든 파일, 하위 디렉터리까지 customers/clients 디렉터리로 복사한다.

특정 파일들을 다른 디렉터리로 복사하려면 다음과 같이 입력한다.

```

cp jones lewis smith /home/nick/clients

```

jones, lewis, smith 파일을 /home/nick/clients 디렉터리로 복사한다.

패턴 일치 문자를 사용하여 파일을 복사하려면 다음과 같이 입력한다.

```

cp programs/*.c .

```

programs 디렉터리에서 .c로 끝나는 파일을 현재 디렉터리로 복사한다. .(점)은 현재 디렉터리를 나타내며, c와 . 사이에 공백이 필요하다.

5. 관련 명령어


  • cpio - 전체 디렉터리 구조를 한 곳에서 다른 곳으로 복사한다.
  • tar - 파일 아카이브를 만든다.
  • link - 파일이나 디렉터리를 연결하기 위한 링크를 만드는 시스템 콜이다.
  • ln - 파일이나 디렉터리로의 링크를 만든다.
  • mv - 파일이나 디렉터리를 이동시킨다.
  • rm - 파일이나 디렉터리를 제거한다.
  • unlink - 파일이나 디렉터리를 제거하기 위한 시스템 콜이다.
  • chmod - 파일이나 디렉터리의 사용 허가를 바꾼다.
  • chown - 파일이나 디렉터리의 소유권을 바꾼다.
  • chgrp - 파일이나 디렉터리의 그룹을 바꾼다.
  • uucp - 유닉스 간 복사이다.
  • scp - SSH를 통한 안전한 복사이다.
  • progress[6][7] - cp, mv, dd의 진행 상황을 표시하는 리눅스 도구이다.

6. 기타


  • man|cp|cp영어 man 페이지[1]
  • man|cp|SUS영어 man 페이지[2]

참조

[1] 웹사이트 Cp(1) - Linux manual page https://www.man7.org[...]
[2] 웹사이트 GNU Coreutils: cp invocation https://www.gnu.org/[...]
[3] 웹사이트 EFI Shells and Scripting http://software.inte[...] Intel 2013-09-25
[4] 간행물 A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 http://www.cs.dartmo[...]
[5] 웹사이트 Cp(1): Copy files/Directories - Linux man page https://linux.die.ne[...]
[6] 웹사이트 Progress(1) - Linux man page https://linux.die.ne[...]
[7] 웹사이트 Progress - Coreutils Progress Viewer https://github.com/X[...] 2021-11-14
[8] 문서 cp: Copy files and directories http://www.gnu.org/s[...] GNU Coreutils



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com