우분투 · 리눅스 입문 — 6편 (기초)

리눅스 파일 명령어 — cp·mv·rm·find 안전하게

이제 진짜로 파일을 다룹니다 — 만들고, 복사하고, 옮기고, 지우고, 찾고. 그리고 한 번 잘못 누르면 끝인 명령 하나를 피하는 법.

2026년 5월 12일 · 약 8분 · 26편 입문 시리즈 6편

터미널에서 파일을 복사·이동·삭제하는 명령어가 보이는 화면 — 리눅스 파일 명령어를 상징하는 일러스트

1~5편으로 우분투를 깔고, 설정하고, 터미널을 열고, 폴더 지도까지 손에 쥐었습니다. 지금까지는 "보기만" 했어요 — pwd, ls, cd. 6편부터는 실제로 만지작거립니다: 파일을 만들고(touch·mkdir), 복사하고(cp), 옮기고(mv), 지우고(rm), 찾고(find).

딱 하나, 이 편에서 정말 진지하게 다룰 게 있어요 — rm. 윈도우의 휴지통 같은 안전망이 기본적으로 없습니다. 그래서 시작 전에 "안전 그물"부터 깔고, 명령어를 배우고, 마지막에 "이건 절대 함부로 치지 마라"를 못 박습니다. 26편 입문 시리즈 6편, 여기서부터 "기초" 묶음입니다.

준비물 — 우분투가 켜져 있고 터미널을 열 줄 알면 됩니다(4편 참고). 가상 머신이면 마음 놓고 실수해도 돼요. 이 글의 실습은 전부 새로 만든 연습 폴더 안에서만 합니다.

시작 전 — 안전 그물 두 개

본격적으로 가기 전에 두 가지를 해둡니다. 별거 아닌데, 이게 "실수해도 괜찮은 환경"을 만들어줍니다.

① 연습 전용 폴더 만들고, 거기서만 작업

$ cd ~ $ mkdir -p ~/linux-practice $ cd ~/linux-practice $ pwd /home/jspark/linux-practice ← 앞으로 모든 실습은 여기서만

mkdir -p-p는 "중간 폴더가 없으면 같이 만들고, 이미 있어도 에러 안 냄"이라는 뜻이에요(예: mkdir -p a/b/c면 a, a/b, a/b/c를 한 번에). 이 폴더 안이라면 뭘 지우든 시스템엔 영향이 없습니다.

② rm 대신 'trash'를 깔아두면 마음이 편하다 (선택)

rm은 즉시 영구 삭제예요. 입문 단계에선 trash-cli를 깔아 "휴지통으로 보내는" 습관을 들여도 좋습니다:

$ sudo apt install trash-cli $ trash-put 파일이름 # rm 대신 — 휴지통으로. 'trash-list'로 확인, 'trash-restore'로 복구

필수는 아니에요. 다만 "되돌릴 수 없다"는 게 부담되면 이 안전망을 두는 거죠. 아래 실습에선 설명을 위해 rm을 쓰지만, 평소엔 둘 중 편한 걸 고르세요.

만들고 보기 — touch · mkdir · ls 옵션

먼저 실습용 파일·폴더 몇 개를 만듭니다. (위에서 만든 ~/linux-practice 안에서 하세요.)

$ touch a.txt b.txt c.log ← 빈 파일 3개 생성 (touch: 파일이 없으면 만들고, 있으면 수정 시각만 갱신) $ mkdir docs images ← 폴더 2개 생성 $ ls a.txt b.txt c.log docs images $ ls -l -rw-r--r-- 1 jspark jspark 0 ... a.txt ← -l: 크기·날짜·권한까지 한 줄씩 $ ls -lah ← -a 숨김까지, -h 크기를 사람이 읽기 좋게(KB·MB). 자주 쓰는 조합: ls -lah

ls의 옵션은 붙여 쓸 수 있어요(-l -a -h = -lah). 이게 리눅스 명령어의 공통 문법입니다 — 명령 + 옵션(-로 시작) + 대상. 외울 건 ls -lah 정도면 충분해요.

복사와 이동 — cp · mv

이 둘이 파일 다루기의 핵심입니다. 차이는 간단해요 — cp는 "원본을 남기고 복제", mv는 "원본을 옮김(이름 바꾸기도 이걸로)".

$ cp a.txt a-backup.txt ← a.txt를 a-backup.txt라는 이름으로 복사 (원본 a.txt 그대로) $ cp a.txt docs/ ← a.txt를 docs 폴더 안으로 복사 (이름 그대로) $ cp -r docs docs-copy ← 폴더를 복사할 땐 -r (recursive, 안의 내용까지). 파일만이면 -r 불필요 $ mv b.txt notes.txt ← b.txt → notes.txt. 같은 폴더 안이면 사실상 "이름 바꾸기" $ mv c.log images/ ← c.log를 images 폴더로 이동 (이제 현재 폴더엔 없음) $ mv -i notes.txt docs/notes.txt mv: overwrite 'docs/notes.txt'? ← -i: 덮어쓰기 전 물어봄. 실수 방지에 좋은 습관

주의할 점 하나: cpmv대상에 같은 이름이 있으면 묻지 않고 덮어씁니다(되돌리기 없음). 그래서 중요한 작업엔 -i(interactive) 옵션을 붙여 "덮어쓸까요?"를 물어보게 하는 게 안전합니다. cp -i, mv -i — 손가락에 익혀두세요.

삭제 — rm · rmdir, 그리고 절대 함부로 치면 안 되는 한 줄

드디어 rm입니다. 다시 강조 — 휴지통 안 거치고, 즉시, 영구 삭제예요.

$ rm a-backup.txt ← 파일 삭제 $ rm -i b.txt c.log rm: remove 'b.txt'? ← -i: 하나씩 "지울까요?" 물어봄 — 입문자 강력 추천 $ rmdir images ← 빈 폴더 삭제 (안에 뭐가 있으면 거부 — 그래서 오히려 안전한 명령) $ rm -r docs-copy ← 폴더와 그 안의 모든 것 삭제. -r 없이는 폴더 못 지움
⚠️ 이 한 줄은 평생 함부로 치지 마세요: sudo rm -rf / 또는 비슷한 형태(rm -rf /*, rm -rf ~ 등). -r은 "폴더째", -f는 "묻지도 따지지도 말고 강제로". sudo까지 붙으면 시스템 전체를 묻지 않고 지웁니다 — 복구 불가. 인터넷에서 "이거 치면 해결됨" 하는 명령에 rm -rf가 보이면, 그게 뭘 지우는지 완전히 이해하기 전엔 절대 치지 마세요. 의심스러우면 그 명령을 검색하거나, 이 시리즈 어딘가에서 다시 확인하세요. 진짜로, 이거 하나만큼은 농담이 아닙니다.

겁주려는 게 아니라, 이걸 알고 나면 나머지는 다 안전해요. rm 파일하나는 그냥 휴지통 없는 삭제일 뿐이고, -i를 붙이면 한 번 더 물어봅니다. 위험한 건 -rf + 넓은 범위(특히 /~) + sudo의 조합뿐입니다.

찾기 — find과 와일드카드, 그리고 다음

파일이 쌓이면 "그게 어디 있더라"가 생깁니다. 두 가지 도구가 있어요.

와일드카드(*, ?, [ ]) — "비슷한 이름 한꺼번에"

$ ls *.txt ← .txt로 끝나는 것 전부. *는 "아무 글자나 0개 이상" $ ls a?.txt ← a + 한 글자 + .txt (a1.txt, ab.txt … ?는 "딱 한 글자") $ rm *.log ← .log 파일 다 삭제 — *는 강력해서 신중히! rm 전엔 ls로 먼저 확인하는 습관

find — "조건으로 뒤지기"

$ find . -name "*.txt" ← 현재 폴더(.)부터 아래로 다 뒤져서 .txt 파일 찾기 $ find ~ -name "notes*" -type f ← 홈(~)부터, 이름이 notes로 시작하는 '파일'(-type f). 폴더는 -type d $ find . -name "*.tmp" -mtime -1 ← .tmp이고 1일 이내 수정된 것. find는 조건을 계속 붙일 수 있음

입문 단계에선 find . -name "패턴" 정도면 충분합니다. (참고로 더 빠르게 찾는 locate나 코드 검색용 grep도 있는데, 텍스트 다루기는 다음 7편에서.) 와일드카드 쓸 땐 지우기 전에 ls로 먼저 확인 — 이 습관 하나가 사고를 막습니다.

오늘의 정리: touch·mkdir -p(만들기) · cp/cp -r(복사) · mv(이동·이름변경) · rm/rm -r/rmdir(삭제) · find . -name(찾기) · *·?(와일드카드). 안전 습관 3개: -i 붙이기 · 와일드카드 전 ls로 확인 · rm -rf + 넓은 범위 + sudo 절대 금지.

시리즈 흐름

  1. 1~5편 — 리눅스란? · 우분투 설치 · 첫 설정 · 터미널 입문 · 디렉토리 구조 ✔ (입문 묶음)
  2. 6편 — 파일 명령어 (이 글) ✔ — "기초" 묶음 시작
  3. 7편 — 텍스트 명령어 (cat·less·head·tail·grep — 파일 내용 들여다보기)
  4. 8편 — nano 편집기 / 9편 — 권한과 chmod / 10편 — 사용자·그룹 관리 …

오늘 할 일: ~/linux-practice 폴더 만들고, 그 안에서 파일 만들기 → 복사 → 이름 바꾸기 → 삭제를 한 바퀴 직접 해보세요. rm -i로 물어보게 하는 것도 한 번 경험해보고요. 손이 기억하면 다음 편이 쉬워집니다. 7편에서 만나요. (참고로 모든 명령은 man cp·cp --help처럼 내장 설명서가 있다는 거, 4편에서 배웠죠.)

우분투·리눅스 입문 시리즈

파일을 다룰 줄 알면 리눅스가 "쓸 줄 아는" 단계입니다. 7편 "리눅스 텍스트 명령어"로 이어집니다.

다음 편은 JUNAI 블로그에서 이어 보세요. 명령어 레퍼런스는 우분투 공식 튜토리얼도 함께.

© 2026 JUNAI · 우분투·리눅스 입문 시리즈 6편 · 본 글은 2026년 5월 12일 기준으로 작성되었습니다.

© 2026 주나이테크(주) @JUNAITECH