공든탑앱 열기

mkdir·rmdir·touch

리눅스마스터 2급 · 기본 명령어 · 약 8분

쉽게 말하면

폴더를 만들고(mkdir) 빈 폴더를 지우고(rmdir) 빈 파일을 만드는(touch) 명령이에요. 여러 단계 폴더를 한 번에 만들려면 옵션이 필요해요.

시험용 정의

mkdir은 디렉터리를 만들고, rmdir은 빈 디렉터리를 지우며, touch는 빈 파일을 만들거나 이미 있는 파일의 시간 정보를 현재로 바꾼다.

비유로 이해하기

mkdir은 서랍장 들이기, rmdir은 빈 서랍장만 치우기, touch는 빈 종이 한 장 넣기(이미 있으면 "오늘 봤음" 도장 찍기)다.

자세히

파일의 세 가지 시간

시간뜻바뀌는 때
atime (access)마지막으로 읽은 시각cat·less로 내용을 볼 때
mtime (modify)마지막으로 내용을 고친 시각. ls -l에 나오는 시간내용을 저장할 때
ctime (change)마지막으로 속성(아이노드 정보)이 바뀐 시각. 생성 시각이 아니다chmod·chown·이름 변경, 내용 변경 때도

touch를 어디에 쓰나

빈 파일 자리를 먼저 만들어 둘 때, 그리고 "이 파일이 방금 바뀌었다"고 알려야 할 때 쓴다. make 같은 빌드 도구와 백업 스크립트는 mtime을 보고 무엇을 다시 처리할지 정하므로, touch로 시각만 갱신해 다시 처리하게 만들 수 있다. 시각을 보려면 stat 파일.

시험에 이렇게 나와요

1차 출제기준 · 공개 기출 없음

확인 문제

Q1. 없는 경로 project/src/main을 한 번에 만들려고 mkdir project/src/main을 쳤더니 오류가 났다. 필요한 옵션은?

  1. -p
  2. -a
  3. -r
  4. -f
정답 보기

1번 -p

-p(parents)는 중간 경로(project, src)가 없으면 함께 만든다. 이미 있어도 오류를 내지 않는다.

Q2. 권한이 700인 디렉터리 private을 만드는 명령은?

  1. mkdir private -700
  2. mkdir -p 700 private
  3. mkdir -m 700 private
  4. touch -m 700 private
정답 보기

3번 mkdir -m 700 private

mkdir -m 700 private다. -m(mode)으로 만들 때 권한을 정한다. -p는 없는 상위 디렉터리까지 만드는 옵션이다.

Q3. 이미 존재하는 파일에 touch를 실행하면?

  1. 수정 시각이 현재로 바뀐다
  2. 내용이 지워진다
  3. 오류가 난다
  4. 사본이 생긴다
정답 보기

1번 수정 시각이 현재로 바뀐다

파일의 시각(수정·접근 시각)이 현재로 바뀐다. 내용은 그대로다. 파일이 없으면 빈 파일을 새로 만든다.

헷갈리기 쉬운 O·X

rmdir은 안에 파일이 있는 디렉터리도 지운다.

정답 보기

X 빈 디렉터리만. 내용까지는 rm -r.

mkdir -p는 이미 존재하는 디렉터리를 지정해도 오류를 내지 않는다.

정답 보기

O 맞는 설명이다.

함께 보면 좋은 개념