시스템 관리/리눅스

2-3. 리눅스 기본(파일 관련 명령어) cp

코딩금융치료 2023. 7. 10. 20:03

1. cp(copy)

   하나 또는 그 이상의 파일이나 디렉토리를 복사한다.

   - 복사하려는 소스 파일과 저장될 타켓 파일의 위치나 이름을 나타내는 두개의 인자가 필요하다.

   - 파일과 디렉토리의 위치를 나타낼 때는 상대, 절대 경로명을 이용하여 명시할 수 있으며, 경로명이 

      생략된 경우에는 현재 디렉토리 안에서 작업이 이루어진다.

   - 타켓 파일명이 따로 주어지지 않으면 소스 파일과 같은 이름으로 복사 된다.

 

# cp [-option] source_file dest_file

[option]

 -a: 가능한한 원 파일의 구조와 속성을 그대로 복사한다. (원본 파일이나 디렉토리의 속성과 퍼미션을 보존하여 복사)

 -b: 복사할 때 덮어쓰게 되는 파일은 백업을 만든다.

 -d: 심볼릭 링크는 심볼릭 링크로 복사한다. 그리고 원본 파일과의 하드 링크 관계를 유지한다.

 -f: 복사 위치에 존재하는 파일을 제거하고 복사한다.

 -i : 복사시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다. (--interactive)

 -l : 하드 링크를 유지하면서 파일을 복사한다.

-P : 원본 파일의 소유자, 그룹, 권한, 시간 기록을 그대로 복사한다.

 -r, -R : 파일과 하위 디렉토리에 포함된 파일 모두를 재귀적(recursive)으로 복사한다. 

 -s: 디렉토리가 아닌 파일의 심볼릭 링크를 만든다.

 -u: 파일의 정보를 갱신한다.

 -x: 다른 파일 시스템인 하위 디렉토리는 무시한다. 원본 파일과 대상 파일이 동일한 파일 시스템에 위치해야 합니다.

      다른  파일 시스템에 있는 파일은 복사되지 않는다.

 

 

ex)

# cp myfile.txt myfile2.txt

# cp -a myfile.txt myfile3.txt

-a 옵션을 줄 경우 원본 속성 까지 그대로 복사 되는 걸 확인 할 수 있다.

#  cp -r ./kaga36/ ./test

현재 디렉토리 아래의 kaga36 디렉토리에 있는 모든 파일과 하위 디렉토리를  현재 디렉토리 아래의 test 디렉토리 아래로 복사한다.