cp 명령어cp는 파일이나 디렉토리를 복사할 때 사용하는 명령어이다. 복사본은 원본 파일과 독립적이며, 복사 이후에는 서로 영향을 미치지 않는다.
cp source_file destination_file
source_file을 destination_file로 복사한다.cp -r source_directory destination_directory
-r 옵션은 디렉토리를 재귀적으로 복사한다. 디렉토리 내 모든 파일과 하위 디렉토리가 복사된다.cp -i source_file destination_file
-i 옵션은 복사 대상 파일이 이미 있을 경우, 덮어쓰기 전에 확인을 요청한다.cp -p source_file destination_file
-p 옵션은 원본 파일의 속성(권한, 타임스탬프 등)을 유지하며 복사한다.cp의 특징하드링크는 파일 시스템에서 동일한 파일에 대한 또 다른 이름을 생성하는 것이다. 원본 파일과 하드링크는 동일한 데이터 블록(inode)를 가리킨다.
ln source_file hardlink_name
source_file에 대한 하드링크를 hardlink_name으로 생성한다.ln original.txt hardlink.txt
original.txt와 hardlink.txt는 동일한 파일 데이터를 가리킨다.ls -li 명령어로 inode 번호를 확인한다. 원본 파일과 하드링크는 동일한 inode 번호를 가진다.ls -li
소프트링크는 파일이나 디렉토리에 대한 참조(Shortcut)를 생성한다. 원본 파일의 경로를 저장하고, 이를 통해 간접적으로 데이터를 참조한다.
ln -s source_file symlink_name
source_file에 대한 소프트링크를 symlink_name으로 생성한다.ln -s /home/user/original.txt /home/user/symlink.txt
ls -l 명령어로 확인할 수 있다.ls -l
| 특징 | cp | 하드링크 (ln) | 소프트링크 (ln -s) |
|---|---|---|---|
| 데이터 독립성 | 원본과 독립적 | 원본과 동일 | 원본 파일 참조 |
| 저장 공간 사용 | 추가 공간 필요 | 추가 공간 사용 안 함 | 추가 공간 거의 사용 안 함 |
| 원본 삭제 시 영향 | 영향 없음 | 데이터 유지 | 링크가 깨짐 |
| 디렉토리 대상 사용 | 가능 (-r 필요) | 불가능 | 가능 |
| 파일 시스템 경계 | 경계 넘을 수 있음 | 경계 넘을 수 없음 | 경계 넘을 수 있음 |