mkdir·rmdir·touch
쉽게 말하면
폴더를 만들고(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 파일.
시험에 이렇게 나와요
- touch(빈 파일·시각 변경), mkdir -p(중간 디렉터리까지)
- rmdir은 빈 디렉터리만
- 중간 디렉터리까지 만드는 옵션 → mkdir -p
- rmdir의 제약 (빈 디렉터리만)
- touch의 두 가지 역할
1차 출제기준 · 공개 기출 없음
확인 문제
Q1. 없는 경로 project/src/main을 한 번에 만들려고 mkdir project/src/main을 쳤더니 오류가 났다. 필요한 옵션은?
- -p
- -a
- -r
- -f
정답 보기
1번 -p
-p(parents)는 중간 경로(project, src)가 없으면 함께 만든다. 이미 있어도 오류를 내지 않는다.
Q2. 권한이 700인 디렉터리 private을 만드는 명령은?
- mkdir private -700
- mkdir -p 700 private
- mkdir -m 700 private
- touch -m 700 private
정답 보기
3번 mkdir -m 700 private
mkdir -m 700 private다. -m(mode)으로 만들 때 권한을 정한다. -p는 없는 상위 디렉터리까지 만드는 옵션이다.
Q3. 이미 존재하는 파일에 touch를 실행하면?
- 수정 시각이 현재로 바뀐다
- 내용이 지워진다
- 오류가 난다
- 사본이 생긴다
정답 보기
1번 수정 시각이 현재로 바뀐다
파일의 시각(수정·접근 시각)이 현재로 바뀐다. 내용은 그대로다. 파일이 없으면 빈 파일을 새로 만든다.
헷갈리기 쉬운 O·X
rmdir은 안에 파일이 있는 디렉터리도 지운다.
정답 보기
X 빈 디렉터리만. 내용까지는 rm -r.
mkdir -p는 이미 존재하는 디렉터리를 지정해도 오류를 내지 않는다.
정답 보기
O 맞는 설명이다.