Linux rmdir ๋ช ๋ น์ด๋ ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด์ ํ์ ๋ช ๋ น์ด๋ค. ์ฌ์ฉ๋ฒ, ์ต์ , ์ค์ ์์ , ์ฃผ์์ , ์๋ฌ ํด๊ฒฐ๊น์ง ์์ ์ ๋ฆฌํ๋ค.
1. Linux rmdir ๋ช ๋ น์ด๋ฅผ ๋ฐฐ์ฐ๋ฉด ์ด๋ค ์ ์ด ๋ฌ๋ผ์ง๊น?
Linux์์ ๊ฐ๋ฐํ๊ฑฐ๋ ์์คํ
์ ๊ด๋ฆฌํ๋ค ๋ณด๋ฉด ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํด์ผ ํ๋ ์๊ฐ์ด ๋งค์ผ ์๊ธด๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ต๊ด์ ์ผ๋ก rm -rf๋ฅผ ์ฌ์ฉํ๋ค.
์ด ๋ช
๋ น์ด ์ผ๋ง๋ ์ํํ์ง ์๊ณ ์์ด๋ ์์ด ๋จผ์ ๋๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํ์ง๋ง ํ์ผ ์์คํ
์ ์์ ํ๊ฒ ๋ค๋ฃจ๊ณ ์ถ๋ค๋ฉด,
๊ทธ๋ฆฌ๊ณ ์๋ํ ์คํฌ๋ฆฝํธ์์ “์ค์๋ก ๋ฐ์ดํฐ ๋ ๋ฆด ๊ฐ๋ฅ์ฑ 0%”๋ฅผ ์ํ๋ค๋ฉด,
๊ฐ์ฅ ๋จผ์ ๋ฐฐ์์ผ ํ ๋ช
๋ น์ ๋ฐ๋ก rmdir์ด๋ค.
rmdir๋ “๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ญ์ ํ๋ค”๋ ๋จ์ํ ์์น ๋๋ถ์
๊ฐ์ฅ ์์ ํ๊ณ , ๊ตฌ์กฐ์ ์ธ ๋๋ ํฐ๋ฆฌ ์ญ์ ๋๊ตฌ๋ก ํ๊ฐ๋๋ค.
์ด ๊ธ์์๋ rmdir์ ๊ธฐ๋ณธ ๊ฐ๋
๋ถํฐ ์ต์
, ์ค์ ํ์ฉ, rm -rf์์ ๋น๊ต, ์๋ํ ์คํฌ๋ฆฝํธ,
์๋ฒ ๋๋·OpenWrt ํ๊ฒฝ ์ ์ฉ๊น์ง ๋ชจ๋ ๋ด์ฉ์ ํ ๋ฒ์ ์ ๋ฆฌํ๋ค.
2. rmdir ํต์ฌ ํค์๋์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ
1) rmdir ํต์ฌ ์์ฝ
- ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ญ์ ๊ฐ๋ฅ
- ์ค์๋ก ํ์ผ ์ญ์ ํ ์ํ์ด ๊ฑฐ์ ์์
- rm๋ณด๋ค ํจ์ฌ ์์ ํจ
- CI/CD, ์๋ํ ์คํฌ๋ฆฝํธ, ๋น๋ ์์คํ ์์ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉ๋จ
- ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ ์ ๋ฆฌ ์ ์์ ์ฑ·๋ช ํ์ฑ ๋์
2) ์ ๋น์ด ์์ด์ผ๋ง ์ญ์ ํ ๊น?
Linux ํ์ผ ์์คํ
์ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ฉฐ,
rmdir๋ ์(leaf) ์ญํ ์ ํ๋ ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ ๊ฑฐํ๋ ๊ฒ์ ์์น์ผ๋ก ํ๋ค.
์ด๋ ๊ณง ๋ค์์ ์๋ฏธํ๋ค:
- ์๋ํ์ง ์์ ํ์ผ ์ญ์ ๊ฐ ์ ๋ ๋ฐ์ํ์ง ์์
- ์ํํ ์ฌ๊ท ์ญ์ ๋ฅผ ํผํ ์ ์์
- ๋๋ ํฐ๋ฆฌ ์ ๋ฆฌ๊ฐ “์์ธก ๊ฐ๋ฅํ๊ณ ์์ ํจ”

3. rmdir ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ
Linux ํ์ผ ์์คํ
์ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ฉฐ, ๋๋ ํฐ๋ฆฌ๋ ๊ฐ์ง(branch)๋ ์(leaf) ์ญํ ์ ํ๋ค.
rmdir๋ ์ด ํธ๋ฆฌ ๊ตฌ์กฐ์์ ์(leaf) ๋ถ๋ถ, ์ฆ ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ ๊ฑฐํ๋ค.
๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
rmdir [์ต์
] ๋๋ ํฐ๋ฆฌ๋ช
์:
rmdir logs
๋จ, logs ํด๋๊ฐ ์์ ํ ๋น์ด ์์ด์ผ ์ญ์ ์ฑ๊ณตํ๋ค.
4. rmdir ๋ช ๋ น์ด ์ ์ฒด ์ต์ ์ ๋ฆฌ
1) ๊ธฐ๋ณธ ์ฌ์ฉ ์์
rmdir build/
๋น์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ญ์ ์ฑ๊ณต.
2) ์ฌ๋ฌ ๋๋ ํฐ๋ฆฌ ๋์ ์ญ์
rmdir dir1 dir2 dir3
๋ฆฌ์คํธ ํํ๋ก ๋์ดํ๋ฉด ๋ชจ๋ ์ญ์ ๊ฐ๋ฅํ๋ค.
3) ์์ ๋๋ ํฐ๋ฆฌ๊น์ง ์ฐ์ ์ญ์ (-p ์ต์ )
๊ฐ์ฅ ์ ์ฉํ ์ต์ ์ด๋ค.
rmdir -p backup/2025/11/target
์ญ์ ๋์ ์์:
- target ์ญ์
- 11 ์ญ์
- 2025 ์ญ์
- backup ์ญ์
๋จ, ๊ฐ ๋จ๊ณ๊ฐ ๋น์ด ์์ด์ผ ํ๋ค.

4) --ignore-fail-on-non-empty : ์คํจ ๋ฉ์์ง ๋ฌด์
rmdir --ignore-fail-on-non-empty logs/
๋๋ ํฐ๋ฆฌ๊ฐ ๋น์ด ์์ง ์์๋ ๊ฒฝ๊ณ ์ถ๋ ฅํ์ง ์๋๋ค.
CI/CD, ๋ฐ๋ณต ๋น๋ ํ๊ฒฝ์์ ๋ก๊ทธ ์คํธ์ ์ค์ผ ์ ์๋ค.
5. rmdir์์ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ํ๋ ์ค๋ฅ & ํด๊ฒฐ๋ฒ
1) Directory not empty
๊ฐ์ฅ ๋ง์ด ๋์ค๋ ์๋ฌ ๋ฉ์์ง:
rmdir: failed to remove 'build': Directory not empty
ํด๊ฒฐ๋ฒ
- ๋ด๋ถ ํ์ผ ํ์ธ
ls -al build/
- ์จ๊น ํ์ผ ํ์ธ
ls -a build/
์จ๊น ํ์ผ ๋๋ฌธ์ ์ญ์ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง๋ค.
.gitkeep, .DS_Store, .config ๋ฑ์ด ๋ํ์ ์์ธ.
2) Permission denied
๊ถํ ๋ฌธ์ ์ผ ๊ฒฝ์ฐ:
sudo rmdir dirname
ํน์ ๋๋ ํฐ๋ฆฌ ์์ ๊ถ ์กฐ์ :
sudo chown -R user:user dirname
3) Device or resource busy (๋ง์ดํธ๋ ๋๋ ํฐ๋ฆฌ)
์:
rmdir: failed to remove 'mnt': Device or resource busy
์ธ๋ง์ดํธํ๋ฉด ํด๊ฒฐ๋๋ค.
umount mnt

6. rm -rf vs rmdir๋ฅผ ํ์คํ ๊ตฌ๋ถํ๋ ๋ฐฉ๋ฒ
๋ ๋ช ๋ น์ ์ฐจ์ด๋ ๋จ์ ๊ธฐ๋ฅ์ ๋์ด ์ฌ๊ณ ๊ฐ๋ฅ์ฑ์๋ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค.
| ๊ตฌ๋ถ | rmdir | rm -rf |
| ์ญ์ ๊ฐ๋ฅ ๋์ | ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ | ๋ชจ๋ ํ์ผ·๋๋ ํฐ๋ฆฌ |
| ์์ ์ฑ | ๋งค์ฐ ์์ | ๋งค์ฐ ์ํ |
| ์ค์ ๊ฐ๋ฅ์ฑ | ๋ฎ์ | ๋งค์ฐ ๋์ |
| ๋ฐฑ์ /์ด์ํ๊ฒฝ ์ฌ์ฉ | ์์ | ์ํ |
| ์๋ํ ์คํฌ๋ฆฝํธ ์ฌ์ฉ | ์ ๊ทน ๊ถ์ฅ | ์ ์คํ๊ฒ |
์์ฝํ๋ฉด,
rm -rf๋ ๊ฐ์ ๋ก ์ญ์ ํ๋ ๋๊ตฌ,
rmdir๋ ์์ ํ๊ฒ ์ญ์ ํ๋ ๋๊ตฌ.
7. ์๋ํ ์คํฌ๋ฆฝํธ์์ rmdir ํ์ฉํ๊ธฐ
์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ณต ๋น๋ํ๋ค ๋ณด๋ฉด build/, tmp/, dist/ ๋ฑ ์์ ํด๋๊ฐ ๊ณ์ ์์ธ๋ค.
์ด๋ rm -rf ๋์ rmdir๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ์ํ์ ํฌ๊ฒ ์ค์ผ ์ ์๋ค.
#!/bin/sh
# ๋น์ด ์๋ build ๋๋ ํฐ๋ฆฌ ์ญ์
[ -d build ] && rmdir build 2>/dev/null
# ์์ ๋๋ ํฐ๋ฆฌ๊น์ง ๋น์ด ์์ผ๋ฉด ํจ๊ป ์ญ์
rmdir -p output/2025/11/ 2>/dev/null
# ์ฌ๋ฌ ๋ก๊ทธ ๋๋ ํฐ๋ฆฌ ์๋ ์ ๋ฆฌ
for d in logs old tmp; do
rmdir $d 2>/dev/null
done
์ฅ์ ์์ฝ
- rm -rf๋ฅผ ์ฌ์ฉํ์ง ์์ ์์ ์ฑ ๋์
- ์๋ํ๋ ๋น๋์์ ๋น ๋ฅด๊ฒ ์ ๋ฆฌ ๊ฐ๋ฅ
- ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ์ต์ํํ์ฌ CI/CD ๋ก๊ทธ ๊ฐ๋ ์ฑ ํฅ์
8. ์๋ฒ ๋๋·OpenWrt ํ์ฅ์์ rmdir๋ฅผ ์ฐ๋ฉด ์ข์ ์ด์
OpenWrt·์๋ฒ ๋๋ ์์คํ ์ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๊ณ ์ ์ ์ด๋ฉฐ, ์ค์ ํ๋๊ฐ ์ด๋ฏธ์ง ๋น๋ ์ ์ฒด๋ฅผ ๋ง๊ฐ๋จ๋ฆด ์ ์๋ค.
rmdir๊ฐ ํนํ ์ ์ฉํ ์ํฉ
- staging_dir ๊ตฌ์กฐ ์ ๋ฆฌ
- download/ ๋ด๋ถ์ ๋น์ด ์๋ ํจํค์ง ๋๋ ํฐ๋ฆฌ ์ ๊ฑฐ
- rootfs ์ด๋ฏธ์ง ๋น๋ ํ ๋จ๋ ์์ฌ ๋๋ ํฐ๋ฆฌ ์ ๊ฑฐ
- /etc/init.d, /etc/rc.d ์์ ํ ๋จ๋ ๋น ํด๋ ์ ๋ฆฌ
์:
rmdir -p build_dir/target*/tmp_pkg/
rmdir์ ์ฅ์ ์ “์ ๋ ์ํํ ์ญ์ ๊ฐ ์ผ์ด๋์ง ์๋๋ค”๋ ์ ์ด๋ค.
์๋ฒ ๋๋ ํ๊ฒฝ์์ ์ด๋ ๋งค์ฐ ํฐ ์๋ฏธ๋ฅผ ๊ฐ๋๋ค.

9. Git ํ๋ก์ ํธ ์์ ์ rmdir ํ์ฉํ๊ธฐ
Git ๋ธ๋์น ์ ํ ์ ๋๋ ํฐ๋ฆฌ ์ ๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด rmdir๋ ๋งค์ฐ ์ ์ฉํ๋ค.
์:
rmdir build-output/test/
rmdir -p dist/2025/11/
- ์ค์๋ก ์ค์ํ ํ์ผ์ ์ญ์ ํ์ง ์์
- ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ ๋ฆฌ๋๋ฏ๋ก ์์
10. Docker ๋น๋ ํ๊ฒฝ์์ rmdir์ ์ฅ์
Docker ๋ฉํฐ์คํ
์ด์ง ๋น๋ ์ค ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋จ์ ์ด๋ฏธ์ง ์ฉ๋์ ์ฆ๊ฐ์ํค๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
ํนํ /tmp, /build ๋ด๋ถ๊ฐ ๋น์ด ์๋ ์ํฉ์๋ rmdir๋ก ์์ ํ๊ฒ ์ ๋ฆฌํ ์ ์๋ค.
Dockerfile ์:
RUN rmdir /tmp/build_stage 2>/dev/null || true
11. rmdir๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ๋์ ๊ธฐ์ตํด์ผ ํ ํต์ฌ 5๊ฐ์ง
- ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ๋ง ์ญ์ ํ๋ค.
- -p ์ต์ ์ ์ฌ์ฉํ๋ฉด ์์ ๋๋ ํฐ๋ฆฌ๋ ์ฐ์ ์ญ์ ๋๋ค.
- rm -rf๋ณด๋ค ํจ์ฌ ์์ ํ๋ค.
- ์๋ํ/์คํฌ๋ฆฝํธ ํ๊ฒฝ์์ ํนํ ์ ์ฉํ๋ค.
- Directory not empty๋ ์จ๊น ํ์ผ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
12. ์์ฃผ ๋ฌป๋ ์ง๋ฌธ(FAQ)
Q1. ๋น์ด ์์ง ์์ ๋๋ ํฐ๋ฆฌ๋ rmdir๋ก ์ญ์ ํ ์ ์๋์?
๋ค. ์ ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ด ์ฒ ํ ๋๋ถ์ rmdir๋ ๋งค์ฐ ์์ ํฉ๋๋ค.
Q2. ๊ทธ๋ผ rm -rf๋ rmdir๋ฅผ ์์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์?
์์ ํจํด์ ๋ค์๊ณผ ๊ฐ์์.
rmdir dir 2>/dev/null || rm -rf dir
๊ฐ๋ฅํ๋ฉด ๋จผ์ rmdir๋ก ์ญ์ ๋ฅผ ์๋ํ๊ณ , ์คํจํ๋ฉด rm -rf๋ก ๋์ด๊ฐ๋ ๋ฐฉ์.
Q3. ๋๋ ํฐ๋ฆฌ๊ฐ ๋น์ด ์๋์ง ํ์ธํ๋ ค๋ฉด?
ls -A dirname
๋น์ด ์์ผ๋ฉด ์๋ฌด ์ถ๋ ฅ์ด ์๋ค.
Q4. ๋น์ด ์๋ ๋๋ ํฐ๋ฆฌ ๋ชฉ๋ก์ ํ ๋ฒ์ ๋ณด๊ณ ์ถ๋ค๋ฉด?
find . -type d -empty
Q5. rmdir๋ ํ์ผ ์ญ์ ์๋ ์ฌ์ฉํ ์ ์๋์?
๋ค. ๋๋ ํฐ๋ฆฌ ์์ฒด๋ง ์ญ์ ๊ฐ๋ฅํ๋ฉฐ ํ์ผ ์ญ์ ๊ธฐ๋ฅ์ ์๋ค.
13. ๊ฒฐ๋ก - Linux์์ rmdir๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ฃผ๋ ๋ณํ
Linux์์ ์ค์๋ ๊ณง ๋ฐ์ดํฐ ์์ค๋ก ์ด์ด์ง ์ ์๋ค.
ํนํ ์ด์ํ๊ฒฝ·์๋ฒ ๋๋·๋น๋ ์์คํ
์์๋ rm -rf ํ ์ค์ด ์์คํ
์ ์ฒด๋ฅผ ๋ง๊ฐ๋จ๋ฆด ์ ์๋ค.
rmdir๋ ์๊ณ ๋จ์ํ์ง๋ง,
์ญ์ ๊ณผ์ ์ “์์ ํ๊ณ ์์ธก ๊ฐ๋ฅํ๊ฒ” ๋ง๋ค์ด ์์คํ
์์ ์ฑ์ ํฌ๊ฒ ์ฌ๋ ค์ค๋ค.
“์์ ๋ช ๋ น์ด ํ๋๊ฐ, ํฐ ์ฌ๊ณ ๋ฅผ ๋ง๋๋ค.”
์ด์ rm -rf๋ฅผ ๋๋ฅด๊ธฐ ์ ์ ํ ๋ฒ ๋ ์๊ฐํด๋ณด์.
“ํน์ ์ด ๋๋ ํฐ๋ฆฌ, rmdir๋ก ์์ ํ๊ฒ ์ง์ธ ์ ์๋๊ฐ?”