리눅스 파일 조작 명령어 완벽 가이드
dd, rsync, scp 명령어를 활용한 고급 파일 관리 기술
1. dd 명령어 - 파일 변환 및 복사

dd 명령어 개요
dd
명령어는 리눅스에서 블록 단위로 데이터를 복사하고 변환하는 강력한 도구입니다. 원시 데이터를 다루는 데 특화되어 있어 디스크 이미징, 부팅 가능한 USB 생성, 데이터 변환 등 다양한 용도로 사용됩니다.
기능 요약: dd는 "data duplicator"의 약자로, 저수준에서 데이터를 복사하고 변환하는 도구입니다. 파일 시스템을 무시하고 블록 장치를 직접 다룰 수 있어 시스템 관리자에게 필수적인 명령어입니다.
기본 사용법
dd if=입력파일 of=출력파일 [옵션]
주요 옵션
옵션 | 설명 | 사용 예시 |
---|---|---|
bs=BYTES | 한 번에 읽고 쓸 바이트 수 설정 (블록 크기) | bs=4M (4MB 블록 사용) |
count=N | 복사할 블록 수 지정 | count=1024 (1024블록 복사) |
skip=N | 입력에서 N 블록 건너뛰기 | skip=10 (입력의 처음 10블록 건너뛰기) |
seek=N | 출력에서 N 블록 건너뛰기 | seek=20 (출력의 처음 20블록 건너뛰기) |
conv=CONVS | 변환 옵션 지정 (notrunc, noerror, sync 등) | conv=notrunc,noerror |
실전 예제
- 디스크 이미지 생성:
dd if=/dev/sda of=disk.img bs=4M status=progress
- 부팅 가능한 USB 만들기:
dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress
- 파일 일부만 복사:
dd if=largefile.bin of=part.bin bs=1M count=100 skip=50
주의: dd 명령어는 매우 강력하지만 잘못 사용하면 데이터 손실을 초래할 수 있습니다. 특히 of= 대상 지정 시 실수로 중요한 디스크를 지정하지 않도록 주의하세요.
2. rsync - 원격 파일 동기화
rsync 명령어 개요
rsync
는 파일과 디렉토리를 효율적으로 동기화하는 도구로, 로컬과 원격 시스템 간의 데이터 전송에 특화되어 있습니다. 변경된 부분만 전송하는 델타 전송 알고리즘을 사용하여 대역폭을 절약할 수 있습니다.
기능 요약: rsync는 원격 업데이트 프로토콜을 사용하여 두 위치 간의 파일 차이만 전송합니다. 증분 백업, 미러링, 일반 파일 복사 등에 널리 사용됩니다.
기본 사용법
rsync [옵션] 원본 대상
주요 옵션
옵션 | 설명 | 사용 예시 |
---|---|---|
-a, --archive | 아카이브 모드 (권한, 시간 등 보존) | rsync -a source/ dest/ |
-v, --verbose | 자세한 출력 | rsync -av source/ dest/ |
-z, --compress | 전송 중 압축 | rsync -az source/ dest/ |
-h, --human-readable | 사람이 읽기 쉬운 형식 출력 | rsync -ah source/ dest/ |
--delete | 대상에서 원본에 없는 파일 삭제 | rsync -a --delete source/ dest/ |
-e | 원격 셸 지정 | rsync -e "ssh -p 2222" ... |
--progress | 전송 진행 상황 표시 | rsync -a --progress source/ dest/ |
실전 예제
- 로컬 디렉토리 동기화:
rsync -avh /path/to/source/ /path/to/destination/
- 원격 서버로 파일 전송:
rsync -avz -e ssh /local/path/ user@remote:/remote/path/
- 원격 서버에서 파일 가져오기:
rsync -avz -e ssh user@remote:/remote/path/ /local/path/
- 대역폭 제한 설정:
rsync -avz --bwlimit=1000 source/ dest/
팁: rsync는 대규모 데이터 전송이나 정기적인 백업에 매우 유용합니다. cron 작업과 결합하여 자동 백업 시스템을 구축할 수 있습니다.
3. scp - 보안 원격 파일 복사
scp 명령어 개요
scp
(secure copy)는 SSH 프로토콜을 이용하여 네트워크를 통해 파일을 안전하게 전송하는 명령어입니다. 데이터 전송 시 암호화를 사용하므로 보안이 중요한 환경에서 유용합니다.
기능 요약: scp는 SSH의 보안 기능을 활용하여 파일을 전송합니다. 사용법이 간단하면서도 강력한 보안을 제공하여 시스템 관리자들이 자주 사용하는 도구입니다.
기본 사용법
scp [옵션] 원본파일 대상파일
주요 옵션
옵션 | 설명 | 사용 예시 |
---|---|---|
-P 포트 | 원격 호스트의 포트 지정 | scp -P 2222 file user@host:/path |
-p | 파일의 수정 시간 및 권한 보존 | scp -p file user@host:/path |
-r | 디렉토리 전체를 재귀적으로 복사 | scp -r dir/ user@host:/path |
-C | 압축 활성화 | scp -C file user@host:/path |
-i | 인증을 위한 개인 키 파일 지정 | scp -i ~/.ssh/key.pem file user@host:/path |
-q | 자세한 메시지 출력 안 함 | scp -q file user@host:/path |
실전 예제
- 로컬 파일을 원격 서버로 전송:
scp localfile.txt username@remotehost:/remote/directory/
- 원격 서버에서 로컬로 파일 가져오기:
scp username@remotehost:/remote/file.txt /local/directory/
- 특정 포트 사용:
scp -P 2222 file.txt user@host:/path/
- 디렉토리 전체 복사:
scp -r directory/ user@host:/path/
주의: scp는 대용량 파일 전송 시 rsync보다 효율성이 떨어질 수 있습니다. 또한, 최신 버전의 OpenSSH에서는 scp 프로토콜이 더 이상 사용되지 않을 수 있으므로 sftp나 rsync를 대안으로 고려해보세요.
명령어 비교 및 사용 시나리오
명령어 | 주요 용도 | 장점 | 단점 | 권장 사용 시나리오 |
---|---|---|---|---|
dd | 블록 장치 복제, 파일 변환 | 저수준 접근 가능, 정확한 복제 | 사용이 복잡함, 위험성 있음 | 디스크 이미징, 부팅 미디어 생성 |
rsync | 파일 동기화, 증분 백업 | 변경된 부분만 전송, 효율적 | 초기 설정이 필요할 수 있음 | 정기 백업, 서버 간 데이터 동기화 |
scp | 보안 파일 전송 | 간단한 사용법, 강력한 보안 | 대용량 파일에 비효율적 | 간단한 파일 전송, 일회성 작업 |
dd 사용 시나리오
- 물리적 디스크의 정확한 이미지 생성
- 부팅 가능한 USB 드라이브 생성
- 특정 블록 크기로 파일 변환
- 디스크 성능 테스트
rsync 사용 시나리오
- 서버 간 데이터 동기화
- 증분 백업 시스템 구축
- 대규모 데이터 마이그레이션
- 제한된 대역폭 환경에서 파일 전송
scp 사용 시나리오
- 간단한 파일 전송이 필요한 경우
- SSH 접근만 가능한 환경
- 소량의 민감한 데이터 전송
- rsync가 설치되지 않은 시스템
반응형
'개발 > Linux' 카테고리의 다른 글
리눅스 파일 보기 명령어: cat, less, more 완벽 가이드 (0) | 2025.04.19 |
---|---|
파일 조작 명령어: sync와 install 명령어 완벽 가이드 (0) | 2025.04.19 |
리눅스 파일 조작 명령어: ln과 shred로 파일 관리하기 (0) | 2025.04.18 |
리눅스 파일 조작 명령어: cp와 mv 활용 가이드 (0) | 2025.04.18 |
파일 조작 명령어: rm과 cp 명령어 활용 가이드 (0) | 2025.04.17 |