cp
명령어
Unix 계열 운영 체제에서 cp
명령어는 파일과 디렉토리를 복사하는 강력한 도구입니다. "복사"를 의미하며, 시스템 관리자와 개발자들은 파일 시스템을 관리하기 위해 이를 널리 사용합니다.
cp
소개
cp
명령어는 간단하면서도 다재다능합니다. 이를 통해 파일 시스템 내의 한 위치에서 다른 위치로 하나 이상의 파일이나 디렉토리를 복사할 수 있습니다. cp
를 사용하여 파일을 중복하거나, 중요한 데이터를 백업하거나, 단일 명령어로 디렉토리 계층을 생성할 수도 있습니다.
기본 구문
cp
명령어의 기본 구문은 다음과 같습니다:
cp [옵션] 원본 대상
원본
: 복사하고자 하는 파일이나 디렉토리입니다.대상
: 파일이나 디렉토리를 복사하고자 하는 파일 시스템의 대상 위치입니다.
옵션
cp
명령어에는 행동을 수정하는 다양한 옵션이 있습니다. 여기 몇 가지 일반적으로 사용되는 옵션이 있습니다:
-a
: 아카이브 모드; 파일 속성을 보존하고 디렉토리를 재귀적으로 복사합니다.-i
: 대화형 모드; 덮어쓰기 전에 확인합니다.-f
: 강제 모드; 확인 없이 기존 파일을 덮어씁니다.-n
: 기존 파일을 덮어쓰지 않습니다.-p
: 파일의 모드, 소유권, 타임스탬프를 보존합니다.-r
: 재귀적 모드; 디렉토리를 재귀적으로 복사합니다.-u
: 업데이트 모드; 원본 파일이 대상 파일보다 새uer일 경우에만 복사합니다.-v
: 자세 모드; 복사 작업의 진행 상황을 표시합니다.
파일 복사하기
단일 파일을 복사하려면 cp
명령어를 입력한 후 원본 파일과 대상 파일이나 디렉토리를 지정합니다.
예시 1: 단일 파일 복사하기
cp example.txt /home/user/backup/
이 명령어는 현재 디렉토리에 있는 example.txt
를 /home/user/backup/
디렉토리로 복사합니다. 대상에 이미 example.txt
가 존재한다면 덮어씁니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
예시 2: 새 파일명으로 복사하기
cp example.txt /home/user/backup/example_backup.txt
여기서 example.txt
는 /home/user/backup/
디렉토리로 복사되고 example_backup.txt
로 이름이 변경됩니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
디렉토리 복사하기
디렉토리를 복사하려면 모든 파일과 하위 디렉토리를 포함하도록 -r
옵션을 사용해야 합니다.
예시 3: 디렉토리 복사하기
cp -r my_directory/ /home/user/backup/
이 명령어는 my_directory
디렉토리와 그 내용을 재귀적으로 /home/user/backup/
디렉토리로 복사합니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
속성 보존하기
타임스탬프와 접근 권한과 같은 파일 속성을 보존하려면 -p
옵션을 사용합니다.
예시 4: 파일 속성 보존하기
cp -p example.txt /home/user/backup/
이 명령어는 example.txt
를 복사하면서 속성을 보존합니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
대화형 복사하기
중요한 데이터를 실수로 덮어쓰기하는 것을 방지하기 위해, -i
옵션을 사용하여 덮어쓰기 전에 확인을 요청할 수 있습니다.
예시 5: 대화형 모드
cp -i example.txt /home/user/backup/
대상에 example.txt
가 이미 존재한다면 cp
는 계속하기 전에 확인을 요청합니다.
출력:
cp: overwrite '/home/user/backup/example.txt'?
여러 파일 복사하기
여러 파일을 복사하려면 대상 앞에 나열합니다.
예시 6: 여러 파일 복사하기
cp file1.txt file2.txt file3.txt /home/user/backup/
이 명령어는 file1.txt
, file2.txt
, file3.txt
를 /home/user/backup/
디렉토리로 복사합니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
와일드카드 사용하기
와일드카드를 사용하여 패턴에 맞는 파일 그룹을 복사할 수 있습니다.
예시 7: 와일드카드 사용하기
cp *.txt /home/user/backup/
이 명령어는 현재 디렉토리에 있는 모든 .txt
파일을 /home/user/backup/
디렉토리로 복사합니다.
출력:
확인 모드(-v
)가 사용되지 않는 한 출력되지 않습니다.
주의할 점
- 파일 덮어쓰기: 중요한 데이터를 실수로 덮어쓰기하지 않도록 주의하세요.
-i
또는-n
을 사용하여 실수로 덮어쓰기를 방지하세요. - 권한: 원본 파일을 읽고 대상에 쓸 수 있는 필요한 권한이 있는지 확인하세요.
- 심볼릭 링크: 기본적으로
cp
는 심볼릭 링크의 대상을 복사하고, 링크 자체를 복사하지 않습니다. 링크를 복사하려면-d
를 사용하세요. - 속성 보존:
-a
또는-p
를 사용할 때 대상 파일에 보존된 속성을 설정할 수 있는 권한이 있는지 확인하세요.
항상 명령어를 주의 깊게 확인하여 실수로 인한 데이터 손실을 방지하세요. 다양한 시나리오로 연습하여 이 다재다능한 명령어에 능숙해지세요.