고급 파일 복사 옵션
이 단계에서는 파일 복사 작업을 더욱 효율적으로 만들 수 있는 cp 명령어의 몇 가지 유용한 옵션에 대해 배우게 됩니다.
프로젝트 디렉토리로 다시 이동하는 것으로 시작해 보겠습니다:
cd ~/project
-p를 사용하여 파일 속성 유지
파일을 복사할 때 타임스탬프, 소유권 및 권한과 같은 원래 파일의 속성을 유지하고 싶을 수 있습니다. -p 옵션을 사용하면 이를 수행할 수 있습니다:
cp -p data-files/apple.txt backup/apple_preserved.txt
원본 파일과 보존된 복사본을 비교해 보겠습니다:
ls -l data-files/apple.txt backup/apple.txt backup/apple_preserved.txt
backup/apple_preserved.txt가 원본 파일과 동일한 타임스탬프를 가지고 있는 반면, -p 옵션 없이 이전에 복사한 backup/apple.txt는 더 새로운 타임스탬프를 가지고 있음을 알 수 있습니다.
-r을 사용하여 재귀적 복사 생성
디렉토리와 해당 내용을 함께 복사하려면 -r (재귀적, recursive) 옵션을 사용해야 합니다. 이를 시연하기 위해 중첩된 디렉토리 구조를 만들어 보겠습니다:
mkdir -p data-files/nested/deep
echo "This is a nested file." > data-files/nested/nested_file.txt
echo "This is a deep nested file." > data-files/nested/deep/deep_file.txt
이제 전체 data-files 디렉토리와 해당 내용을 새 위치로 복사해 보겠습니다:
cp -r data-files data-files-backup
디렉토리 구조와 파일이 제대로 복사되었는지 확인해 보겠습니다:
find data-files-backup -type f | sort
복사된 디렉토리 구조의 모든 파일을 나열하는 출력을 볼 수 있습니다:
data-files-backup/apple.txt
data-files-backup/grape.txt
data-files-backup/nested/deep/deep_file.txt
data-files-backup/nested/nested_file.txt
data-files-backup/orange.txt
-i를 사용한 대화형 모드
파일을 복사할 때 실수로 기존 파일을 덮어쓸 수 있습니다. -i (대화형, interactive) 옵션은 파일을 덮어쓰기 전에 프롬프트를 표시합니다:
cp -i data-files/apple.txt backup/apple.txt
backup/apple.txt가 이미 존재하므로 덮어쓸지 묻는 프롬프트가 표시됩니다:
cp: overwrite 'backup/apple.txt'?
y로 응답하여 덮어쓰거나 n으로 취소할 수 있습니다.
이러한 고급 옵션은 파일 관리 요구 사항에 대해 cp 명령어를 더욱 강력하고 유연하게 만듭니다.