파일·폴더 생성, 이동, 복사, 이름 변경
4강. 파일·폴더 생성, 이동, 복사, 이름 변경
1. 이번 강의에서 해결할 문제
파일 명령은 짧지만 현재 위치나 대상 이름을 잘못 쓰면 기존 파일을 덮어쓸 수 있습니다. 실행 전 목록을 확인하고 덮어쓰기 여부를 묻는 옵션을 사용합니다.
2. 학습 목표
3. 핵심 개념
mkdir -p는 필요한 상위 폴더를 함께 만들고, touch는 파일이 없으면 빈 파일을 만듭니다. cp는 원본을 남기고 복사하며 mv는 위치 이동과 이름 변경에 모두 사용됩니다. 초보 실습에서는 -i로 기존 대상이 있을 때 확인 질문을 받습니다.
명령은 대부분 명령 원본 대상 순서입니다. cp source.txt backup.txt는 원본을 남기지만 mv source.txt renamed.txt는 원래 이름에서 사라집니다. 실행 전에는 pwd, ls -l <원본>, test -e <대상>으로 세 가지를 확인해야 합니다.
| 명령 | 원본에 미치는 영향 | 대표 안전 확인 |
|---|---|---|
mkdir -p | 기존 폴더는 유지 | 만들 위치의 부모 경로 확인 |
touch | 없으면 생성, 있으면 수정 시각 변경 | 같은 이름의 기존 파일 확인 |
cp -i | 원본 유지 | 대상 존재 시 덮어쓰기 질문 확인 |
mv -i | 원본 경로에서 이동 | 원본·대상 절대 경로와 질문 확인 |
4. 단계별 명령어와 예시
1. Ubuntu Bash(WSL)
실행 위치: ~/projects
대상: game-log-analyzer 전용 프로젝트
명령 목적: 과정 전용 폴더에만 하위 구조와 CSV 한 개를 만들고 목록으로 검증합니다.
실행 전 상태: cd "$HOME/projects", pwd, test -e game-log-analyzer를 실행합니다. 기존 동명 프로젝트가 있다면 새 실습 이름을 선택하고 내용을 덮어쓰지 않습니다.
cd "$HOME/projects"
mkdir -p game-log-analyzer/{data,reports,scripts}
cd game-log-analyzer
touch data/battles.csv
printf "player,monster,damage,result\n" > data/battles.csv
find . -maxdepth 2 -type f -o -type d
예상 결과: .과 data, reports, scripts, data/battles.csv가 최대 두 단계 목록에 보입니다. CSV 첫 줄은 player,monster,damage,result입니다.
2. Ubuntu Bash(WSL)
실행 위치: ~/projects/game-log-analyzer
대상: CSV 백업과 이름 변경
실행 전 상태: pwd와 ls -l data/battles.csv로 원본을 확인하고 두 대상 파일의 존재 여부를 검사합니다.
cp -i data/battles.csv data/battles.backup.csv
mv -i data/battles.backup.csv data/battles.sample.csv
ls -l data
예상 결과: battles.csv 원본과 battles.sample.csv가 보이고 중간 이름 battles.backup.csv는 더 이상 보이지 않습니다. 샘플의 내용은 원본과 같습니다.
5. 명령어가 동작하는 이유
상대 경로는 현재 위치를 기준으로 해석됩니다. 중괄호 확장은 동일한 상위 폴더 아래 여러 디렉터리를 만들고, -i는 기존 대상에 쓰기 전에 사용자 확인을 요청합니다.
첫 블록은 프로젝트 구조 생성 → CSV 작성 → 전체 목록 확인, 두 번째 블록은 원본 복사 → 복사본 이름 변경 → 원본과 결과 확인 순서입니다. printf ... >도 파일을 덮어쓸 수 있으므로 반드시 새 전용 파일에서만 사용합니다.
6. 자주 하는 실수와 안전한 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
10. 다음 강의 연결
파일을 안전하게 생성·복사·이동했습니다. 다음 강의에서는 파일 전체를 무조건 열지 않고 크기와 필요한 범위부터 확인합니다.
파일·폴더 생성, 이동, 복사, 이름 변경 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.