오늘 방문 /누적 방문 /완성한 레슨 소개 ↗
SECONDTEAM
터미널
⌨️ 레슨

복사·이동·이름바꾸기 — cp·mv

반찬 레시피를 백업하고, 정리하고, 이름을 바꿔요. 파일 정리의 기본기 두 가지.

① 오늘의 미션
레시피를 백업하고 정리하기
지난 레슨에서 touch로 파일을 만들고 rm의 무게를 배웠어요. 오늘은 이미 만든 레시피 파일을 복사해서 백업하고, 흩어진 파일들을 recipes/ 방으로 정리합니다.

도구는 딱 둘이에요 — cp(복사)와 mv(이동·이름바꾸기). 특히 mv 하나가 두 가지 일을 한다는 게 오늘의 통찰이에요.

설명을 따라 진행하면, 여기서 직접 쳐보게 돼요 👇
~/my-shop
$ _
📚 「복사·이동·이름바꾸기 — cp·mv」 레슨 내용 전체 텍스트로 훑어보기
레시피를 백업하고 정리하기
지난 레슨에서 touch로 파일을 만들고 rm의 무게를 배웠어요. 오늘은 이미 만든 레시피 파일을 복사해서 백업하고, 흩어진 파일들을 recipes/ 방으로 정리합니다.

도구는 딱 둘이에요 — cp(복사)와 mv(이동·이름바꾸기). 특히 mv 하나가 두 가지 일을 한다는 게 오늘의 통찰이에요.

파일을 복사하는 명령은 cp예요. 무엇의 줄임말일까요?
맞아요. cp = copy. 사용법은 cp 원본 사본 — 원본을 그대로 두고 똑같은 복사본 하나를 더 만들어요. 복사기로 문서를 한 장 더 뽑는 것과 같아요.

먼저 백업할 레시피가 있어야겠죠. 김치 레시피 파일을 하나 만들고, cp백업 사본을 떠봐요. 백업 파일 이름엔 보통 .bak을 붙여요.

touch kimchi-recipe.txt — 김치 레시피 파일을 하나 만들어요
cp kimchi-recipe.txt kimchi-recipe.bak — 백업 사본을 떠요 — cp 원본 사본
ls — 둘 다 생겼는지 확인!
원본과 사본이 나란히 두 개가 됐죠? cp는 원본을 건드리지 않고 똑같은 걸 하나 더 만들어요. 레시피를 고치다 망쳐도 .bak이 있으면 든든해요.

방금 cp kimchi-recipe.txt kimchi-recipe.bak을 했어요. 원본인 kimchi-recipe.txt는 지금 어떤 상태일까요?

맞아요. cp는 원본을 그대로 두고 복사본만 새로 만들어요. 그래서 ls에 둘 다 보였죠. 잠깐 — 그럼 원본을 옮기고 싶을 땐? 그게 다음에 배울 mv예요.
둘 다 '원본 → 목적지' 모양이라 헷갈리기 쉬워요. 끝난 뒤 원본이 어떻게 되는지가 핵심 차이예요.
cp (복사): cp 원본 사본

원본은 그대로 남고,
똑같은 게 하나 더 생긴다.

→ 끝나면 파일이 .
(백업·복제용)
mv (이동): mv 원본 목적지

원본이 목적지로 옮겨간다.
원래 자리엔 안 남는다.

→ 끝나면 파일이 하나.
(정리·이름바꾸기용)

지금 김치 레시피가 가게 입구에 굴러다녀요. recipes/ 방을 만들고, mv 파일 폴더/그 방 안에 넣어 정리해요. 폴더 이름 뒤의 /가 "이 안으로"라는 뜻이에요.

mkdir recipes — 레시피 방을 만들어요
mv kimchi-recipe.txt recipes/ — 레시피 원본을 그 방으로 옮겨요
ls — 입구를 보면 — 원본은 이제 없어요
ls recipes — 방 안을 보면 — 들어가 있어요
입구에선 사라지고 recipes 방 안에 나타났죠? cp와 달리 mv는 원본이 한쪽에만 있어요 — 그래서 '정리'에 딱이에요.

레시피 파일 이름을 더 분명하게 winter-kimchi.txt로 바꾸고 싶어요. mv에 옛이름과 새이름을 주면 이름이 바뀌어요. 빈칸을 채워보세요.

정답! mv 옛이름 새이름이면 이름이 바뀌어요. 어? mv는 '이동' 명령인데 왜 이름이 바뀌지? 다음 칸에서 그 통찰을 직접 확인해요. 👇

방금 배운 mv 옛이름 새이름으로 레시피 이름을 바꿔봐요. recipes 방 안에서 작업해요.

cd recipes — 레시피 방으로 들어가요
mv kimchi-recipe.txt winter-kimchi.txt — 이름을 바꿔요 — mv 옛이름 새이름
ls — 확인 — 새 이름만 남았어요
옛이름은 사라지고 새 이름 하나만 남았죠? '같은 자리에 다른 이름으로 옮긴 것' — 그래서 mv 하나로 이름바꾸기가 돼요.
mv에는 'rename'이라는 별도 명령이 없어요. 왜 mv 하나로 이름까지 바뀔까요?
정확해요. 터미널은 이름바꾸기를 '제자리 이동'으로 봐요. 물건을 들었다가 같은 칸에 다른 이름표를 붙여 내려놓는 거죠. 그래서 옮기기도 mv, 이름바꾸기도 mv — 하나의 명령, 두 가지 쓰임이에요.

오늘 한 일을 떠올리며, 레시피를 백업하고 정리한 순서를 맞춰보세요. (↑↓로 정렬)

완벽해요! 백업(cp) → 방 만들기(mkdir) → 정리(mv 폴더/) → 이름바꾸기(mv 새이름). cp는 늘리고, mv는 옮기고 이름 짓는다 — 이 두 손이 가게 정리의 기본이에요.
한 줄로
cp 원본 사본하나를 둘로(백업), mv 원본 목적지원본을 옮긴다(정리). 그리고 mv 옛이름 새이름제자리 이동 = 이름바꾸기. 이름을 바꾸는 게 곧 옮기는 거라는 통찰, 오래 기억하세요.
다음 레슨에서
이제 파일을 만들고·복사하고·정리할 줄 알아요. 다음엔 파일 안을 들여다봅니다cat으로 통째로, head·tail로 앞뒤만 살짝. 레시피에 진짜 내용이 들어가기 시작해요. 📖