본문 바로가기
개발/Linux

리눅스 파일 조작 명령어: cp와 mv 활용 가이드

by 낭만기사 2025. 4. 18.

리눅스 파일 조작 명령어

cp와 mv 명령어의 고급 활용법: 속성 유지와 안전한 파일 관리

 

파일 복사 명령어: cp

cp(copy) 명령어는 리눅스에서 파일이나 디렉토리를 복사하는 데 사용되는 기본 명령어입니다. 다양한 옵션을 통해 복사 방식을 제어할 수 있습니다.

리눅스 터미널에서 파일 조작 명령어 사용 예시

cp -a: 파일 속성 유지하며 복사

-a 옵션은 아카이브 모드로 복사하며, 원본 파일의 모든 속성(권한, 소유자, 타임스탬프 등)을 그대로 유지합니다.

cp -a 원본파일 대상파일
cp -a 원본디렉토리 대상디렉토리

기능 설명: -a 옵션은 -dR --preserve=all과 동일하며, 다음을 모두 보존합니다:

  • 파일 권한 (permissions)
  • 소유자 및 그룹 정보 (ownership)
  • 타임스탬프 (timestamps)
  • 심볼릭 링크 (symbolic links)
  • 확장 속성 (extended attributes)

사용 예시

# 웹사이트 백업 시 모든 속성 유지
cp -a /var/www/html /backup/www_backup

# 사용자 홈 디렉토리 백업
cp -a /home/user /backup/user_backup

cp -i: 덮어쓰기 전 확인 요청

-i 옵션은 인터랙티브 모드로, 대상 위치에 동일한 이름의 파일이 존재할 경우 덮어쓸 것인지 확인을 요청합니다.

cp -i 원본파일 대상파일

주의: -i 옵션을 사용하지 않으면 기존 파일이 자동으로 덮어쓰여지며, 이 경우 데이터 복구가 어려울 수 있습니다.

사용 예시

# 중요한 파일을 덮어쓸 때 확인 받기
cp -i important.txt backup/important.txt

# 여러 파일을 복사할 때 안전하게 작업
cp -i *.txt backup/

팁: alias cp='cp -i'를 쉘 설정 파일(~/.bashrc 등)에 추가하면 항상 확인 모드로 cp 명령어를 사용할 수 있습니다.

파일 이동/이름 변경 명령어: mv

mv(move) 명령어는 파일이나 디렉토리를 이동하거나 이름을 변경하는 데 사용됩니다. cp 명령어와 마찬가지로 다양한 옵션을 제공합니다.

mv -i: 덮어쓰기 전 확인 요청

-i 옵션은 cp 명령어와 동일하게 작동하며, 대상 위치에 동일한 이름의 파일이 존재할 경우 덮어쓸 것인지 확인을 요청합니다.

mv -i 원본파일 대상파일

기능 설명: mv 명령어는 기본적으로 파일을 이동하지만, 동일한 파일 시스템 내에서는 실제 데이터 이동이 발생하지 않고 메타데이터만 변경됩니다. 이는 매우 빠르게 처리됩니다.

사용 예시

# 중요한 파일 이동 시 확인 받기
mv -i important_document.txt /backup/

# 여러 파일 이동 시 안전하게 작업
mv -i *.pdf documents/

주의: mv 명령어는 원본 파일을 삭제하므로, 중요한 파일을 이동할 때는 반드시 백업을 고려하세요.

mv와 cp의 차이점

비교 항목 cp 명령어 mv 명령어
기본 기능 파일/디렉토리 복사 파일/디렉토리 이동 또는 이름 변경
저장 공간 추가 공간 사용 (복사본 생성) 동일한 파일 시스템 내에서는 추가 공간 사용 안 함
원본 파일 유지됨 삭제됨
속성 보존 옵션에 따라 다름 (-a 권장) 기본적으로 대부분의 속성 보존
사용 예시 백업 생성, 파일 배포 파일 정리, 이름 변경

실전 활용 팁

1. 안전한 파일 관리

항상 -i 옵션을 사용하거나 alias로 설정하여 실수로 파일을 덮어쓰는 것을 방지하세요. 특히 root 사용자로 작업할 때는 더욱 중요합니다.

2. 백업 전략

중요한 파일을 수정하기 전에 cp -a로 백업을 생성하세요. 타임스탬프를 유지하면 변경 내역을 추적하기 쉽습니다.

3. 대화형 스크립트 작성

스크립트에서 파일을 조작할 때는 -i 옵션을 사용하거나 명시적으로 사용자 확인을 받는 로직을 추가하세요.

고급 사용법: rsync와의 비교

대량의 파일이나 네트워크를 통한 복사가 필요한 경우 rsync 명령어를 고려해보세요. rsync는 다음과 같은 장점이 있습니다:

  • 변경된 부분만 전송 (증분 복사)
  • 전송 중단 후 재개 가능
  • 압축 전송 지원
  • 원격 시스템과의 동기화
# rsync를 이용한 고급 복사 예시
rsync -avz /source/directory/ /destination/directory/

© 2023 리눅스 명령어 가이드. 모든 권리 보유.

더 많은 리눅스 팁과 튜토리얼을 원하시면 저희 블로그를 방문해주세요.

반응형