whereis ๋ช ๋ น์ด๋ ์คํ ํ์ผ·man ํ์ด์ง·์์ค ํ์ผ์ ์ ์ฒด ์์น๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๋ฆฌ๋ ์ค ๋๊ตฌ์ ๋๋ค. which์์ ์ฐจ์ด, ๋ด๋ถ ๋์, ์ค์ ์์ ๋ฅผ ์๋ฒฝ ์ ๋ฆฌํ์ต๋๋ค.
๋ฆฌ๋ ์ค๋ฅผ ์ฐ๋ค ๋ณด๋ฉด ๋จ์ํ “์ด๋ค ๋ช ๋ น์ด๊ฐ ์คํ๋๋๊ฐ?” ์ด์์ ์ง๋ฌธ์ด ์๊ธธ ๋๊ฐ ์์ต๋๋ค.
- ์คํ ํ์ผ์ด ์ ํํ ์ด๋์ ์ค์น๋์๋์ง ํ์ธํ๊ณ ์ถ์ ๋
- ํจํค์ง๋ฅผ ์ค์นํ๋๋ฐ man ํ์ด์ง๊ฐ ์ด๋๋ก ๊ฐ๋์ง ํท๊ฐ๋ฆด ๋
- ์์ค ํ์ผ์ด ์์คํ ์ด๋์ ์๋์ง ์๊ณ ์ถ์ ๋
- which๋ PATH ์์์๋ง ์ฐพ๊ธฐ ๋๋ฌธ์ ์ ๋ณด๊ฐ ๋ถ์กฑํ ๋
์ด๋ด ๋ ๊ฐ์ฅ ๋จผ์ ๋ ์ฌ๋ฆฌ๋ฉด ์ข์ ๋ช ๋ น์ด๊ฐ whereis์ ๋๋ค.
whereis๋ ๋จ์ํ ์คํ ํ์ผ ํ ๊ฐ๋ฅผ ์ฐพ๋ ์์ค์ ๋์ด์,
binary · man page · source ํ์ผ์ ์์น๋ฅผ ํ ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ตฌ์กฐ ๋ถ์์ฉ ๋๊ตฌ์
๋๋ค.
๋ฐฐํฌํ๊ณผ ํ๊ฒฝ์ ๋ฐ๋ผ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๊ฐ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์,
์์คํ
์ ์ดํดํ๊ฑฐ๋ ํจํค์ง ๊ตฌ์ฑ์ ํ์
ํ ๋ ํนํ ์ ์ฉํฉ๋๋ค.
1. whereis ๋? ํ ์ค ์ ์๋ก ์ดํดํ๊ธฐ
โ whereis๋?
์คํ ํ์ผ(binary), man ํ์ด์ง, ์์ค ํ์ผ(source file)์ ์์น๋ฅผ ํ ๋ฒ์ ์ฐพ์์ฃผ๋ ๊ฒ์ ๋ช ๋ น์ด.
์๋ฅผ ๋ค์ด:
whereis ls
์ถ๋ ฅ:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
๋ฐ์ด๋๋ฆฌ + ๋งค๋ด์ผ ํ์ด์ง๊ฐ ๋ชจ๋ ์ถ๋ ฅ๋๋ค.
2. whereis ๋ช ๋ น์ด ๊ธฐ๋ณธ ๋ฌธ๋ฒ๊ณผ ์ต์
โ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
whereis [์ต์
] ๋ช
๋ น์ด
โ ์ฃผ์ ์ต์
| ์ต์ | ์ค๋ช |
| -b | ์คํ ํ์ผ(binary)๋ง ๊ฒ์ |
| -m | man ํ์ด์ง๋ง ๊ฒ์ |
| -s | ์์ค ํ์ผ(source)๋ง ๊ฒ์ |
| -u | ๋๋ฝ๋ ์ ๋ณด(ํ์ผ์ด ์๋ ๊ฒฝ์ฐ)๋ง ๋ณด๊ธฐ |
| -B ๋๋ ํ ๋ฆฌ | binary ๊ฒ์ ๋๋ ํ ๋ฆฌ ์ง์ |
| -M ๋๋ ํ ๋ฆฌ | man page ๊ฒ์ ๋๋ ํ ๋ฆฌ ์ง์ |
| -S ๋๋ ํ ๋ฆฌ | source ๊ฒ์ ๋๋ ํ ๋ฆฌ ์ง์ |
๊ธฐ๋ณธ์ ์ผ๋ก binary + man + source ์ธ ๊ฐ์ง ์ ํ์ ๋ชจ๋ ์ฐพ์ง๋ง,
๋ฐฐํฌํ์ ๋ฐ๋ผ source ๋๋ ํฐ๋ฆฌ๋ ์์ ์๋ ์์ต๋๋ค.
3. ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํจํด
1) ls ๊ฒ์
whereis ls
์ถ๋ ฅ ์:
ls: /bin/ls /usr/share/man/man1/ls.1.gz
2) grep ๊ฒ์
whereis grep
์ถ๋ ฅ:
grep: /bin/grep /usr/share/man/man1/grep.1.gz
3) python ๊ฒ์
whereis python
๋๋ถ๋ถ ๋ค์์ฒ๋ผ ๋์จ๋ค:
python: /usr/bin/python3.10 /usr/lib/python3.10 /usr/share/man/man1/python.1.gz
ํ์ด์ฌ์ binary์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ํฐ๋ฆฌ, man ํ์ด์ง๊ฐ ๋ชจ๋ ํ์๋๋ค.
4. which์ whereis ๋ฌด์์ด ๋ค๋ฅธ๊ฐ?
๋ฆฌ๋
์ค๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋๋ค๋ถํฐ 10๋
์ด์ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๊น์ง
์ ๋ง ์์ฃผ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ด๋ค.

์๋ ํ๋ก ๋ช ํํ๊ฒ ์ ๋ฆฌํด๋ณด์.
โ ๋น๊ต ํ
| ํน์ฑ | which | whereis |
| ๊ฒ์ ๊ธฐ์ค | PATH | ๋ฏธ๋ฆฌ ์ ์๋ ์์คํ ๊ฒฝ๋ก |
| ์ถ๋ ฅ ๋ฒ์ | ์คํ ํ์ผ 1๊ฐ | ์คํ ํ์ผ + man + source |
| ์ฉ๋ | ์ด๋ค ๋ช ๋ น์ด๊ฐ ์คํ๋๋์ง ํ์ธ | ๋ช ๋ น์ด์ ์ ์ฒด ์ค์น ๊ตฌ์กฐ ํ์ธ |
| ์๋ | ๋น ๋ฆ | ๋ฏธ๋ฆฌ ์ ์๋ DB ๊ธฐ๋ฐ, ๋น ๋ฆ |
| alias ํ์ธ | ๋ถ๊ฐ | ๋ถ๊ฐ |
| builtin ํ์ธ | ๋ถ๊ฐ | ๋ถ๊ฐ |
| OpenWrt | ์ ํ์ | BusyBox์์ ๋จ์ ๋ฒ์ |
์ฆ,
โ which → “์คํ๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ์ด๋์ธ๊ฐ?”
โ whereis → “์ด ํ๋ก๊ทธ๋จ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ํ์ผ์ ์ด๋์ ์๋๊ฐ?”
์ด๋ ๊ฒ ๊ตฌ๋ถํ๋ฉด ๋๋ค.
5. which์ ๋น๊ตํ whereis ์์
โ grep ๋น๊ต
which grep
/usr/bin/grep
whereis grep
grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz
ํ์คํ whereis๊ฐ ์ ๋ณด๊ฐ ๋ง๋ค.
6. which๋ ๋ชป ์ฐพ๋๋ฐ whereis๋ ์ฐพ๋ ๊ฒฝ์ฐ
์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ์ค์ ๋ก ๋ง๋ค.
1) binary๋ ์์ง๋ง PATH์ ๋ฑ๋ก๋์ง ์์์ ๋
์์:
/opt/custom/bin/mytool
PATH์ ๋ฑ๋ก๋์ง ์์ ์ํ์์:
which mytool
# ์ถ๋ ฅ ์์
๊ทธ๋ฌ๋:
whereis mytool
mytool: /opt/custom/bin/mytool
์ด์ฒ๋ผ ํ์ค ๋๋ ํฐ๋ฆฌ ๋ด์ ์กด์ฌํ๋ฉด PATH์ ์๊ด์์ด ์๋ณ๋ฉ๋๋ค.
7. whereis ์ต์ ๋ณ ์ค์ ํ์ฉ๋ฒ
1) -b : binary๋ง ์ฐพ๊ธฐ
whereis -b python
์ถ๋ ฅ:
python: /usr/bin/python3.10
2) -m : man ํ์ด์ง๋ง ์ฐพ๊ธฐ
whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
3) -s : ์์ค ์ฝ๋ ์์น ์ฐพ๊ธฐ
(์ฃผ์: ์์ค ํ์ผ์ด ์์คํ ์ ์กด์ฌํด์ผ ์ถ๋ ฅ๋๋ค)
whereis -s bash
์ปค๋/๋ฐฐํฌํ ๊ตฌ์ฑ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์์:
bash: /usr/src/bash
4) -u : ๋๋ฝ๋ ํ์ผ๋ง ๋ณด๊ธฐ
whereis -u ls
๋ณด์ํด์ผ ํ ํ์ผ(์: man page ์์)๋ง ๋ณด์ฌ์ค๋ค.
8. whereis๊ฐ ๋ด๋ถ์ ์ผ๋ก ๊ฒ์ํ๋ ๊ตฌ์กฐ
whereis๋ ์์คํ
์ ์ฒด๋ฅผ ๊ฒ์ํ์ง ์์ต๋๋ค.
๋ฐฐํฌํ๋ง๋ค ์ ์๋ ์ผ์ ํ ํ์ค ๋๋ ํฐ๋ฆฌ ์งํฉ์ ๊ฒ์ํฉ๋๋ค.

- /bin
- /sbin
- /usr/bin
- /usr/sbin
- /usr/share/man
- /usr/local/bin
- /usr/local/sbin
- /usr/src
- ๋ฐฐํฌํ๋ง๋ค ์ง์ ๋ ํน์ ๊ฒฝ๋ก
์ฆ, whereis๋ ๋ฏธ๋ฆฌ ์ ํด์ง ๋๋ ํฐ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒ ๊ฒ์ํ๋ ๊ตฌ์กฐ๋ค.
ํต์ฌ ์์ฝ
- which๋ ํ๊ฒฝ ๋ณ์ PATH ๊ธฐ๋ฐ
- whereis๋ ์์คํ ์ ์ฒด์ “ํ์ค ๋๋ ํฐ๋ฆฌ” ๊ธฐ๋ฐ
์ด ๋๋ฌธ์ ๋์ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅผ ์ ์๋ค.
9. ํจํค์ง ์ค์น ํ ํ์ผ ๊ตฌ์กฐ ํ์ธํ๊ธฐ (์ค์ ์์ )
ํจํค์ง๋ฅผ ์ค์นํ๋๋ฐ ํ์ผ๋ค์ด ์ด๋์ ์๋์ง ์๊ณ ์ถ์ ๋
whereis๋ ์๋ฒฝํ ๋๊ตฌ๋ค.
์๋ฅผ ๋ค์ด curl ํจํค์ง๋ฅผ ์ค์นํ๋ค๋ฉด:
whereis curl
์ถ๋ ฅ:
curl: /usr/bin/curl /usr/share/man/man1/curl.1.gz
์ด๋ ๊ฒ ํต์ฌ ํ์ผ์ ๋ฐ๋ก ํ์ธํ ์ ์๋ค.
10. ์๋ฒ ๋๋·OpenWrt ํ๊ฒฝ์์์ whereis
OpenWrt๋ BusyBox ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์:
- ๊ฒ์ ๊ฒฝ๋ก๊ฐ ๋งค์ฐ ์ ํ์
- man page๊ฐ ์์ด์ ์ถ๋ ฅ์ด ๋จ์
- ๋ง์ ๋ฐ์ด๋๋ฆฌ๊ฐ busybox ๋งํฌ
์:
root@OpenWrt:/# whereis ls
ls: /bin/ls
ํ์ง๋ง ์ค์ ๋ก๋:
ls -> /bin/busybox
์ด๋ ๊ธฐ ๋๋ฌธ์
์ฌ๋ณผ๋ฆญ ๋งํฌ์ busybox ๋์๊น์ง ์ดํดํด์ผ ์ ํํ ๋ถ์์ด ๊ฐ๋ฅํ๋ค.
์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ธ:
ls -l /bin/ls

11. whereis + grep ์กฐํฉ ํ
โ ํน์ ํํ์ man ํ์ด์ง๋ง ๋ณด๊ณ ์ถ์ ๋
whereis ls | tr ' ' '\n' | grep man
โ binary๋ง ํํฐ๋ง
whereis ls | tr ' ' '\n' | grep bin
โ ์ฌ๋ฌ ๋ช ๋ น์ด ํ๋ฒ์ ์กฐํ
for c in ls grep tar curl; do whereis $c; done
12. whereis ์์ฃผ ๋ฌป๋ ์ง๋ฌธ(FAQ)
Q1. which์ whereis ์ฐจ์ด๋?
- which → PATH ๊ธฐ๋ฐ ๋ฐ์ด๋๋ฆฌ ๊ฒ์
- whereis → ๋ฐ์ด๋๋ฆฌ + man + ์์ค ์ ์ฒด ๊ฒ์
Q2. whereis๋ alias๋ฅผ ์ฐพ์๊น?
์๋๋ค.
alias๋ ๋ฐ๋์ ๋ค์์ผ๋ก ํ์ธ:
type ๋ช
๋ น์ด
Q3. man page๊ฐ ์์ผ๋ฉด?
whereis ๊ฒฐ๊ณผ์ man์ด ๋ํ๋์ง ์๋๋ค.
OpenWrt ๋ฑ ๊ฒฝ๋ ํ๊ฒฝ์์๋ ์ด๊ฒ์ด ์ ์.
Q4. ์์ค ํ์ผ์ ์ ์ ๋์ค๋๊ฐ?
์์คํ
๋ด์ ์ค์ source ํ์ผ์ด ์ค์น๋์ด ์์ด์ผ ํ๋ค.
์ผ๋ฐ ๋ฐฐํฌํ์์๋ ๋๋ถ๋ถ ์ค์น๋์ด ์์ง ์๋ค.
Q5. Windows์ where์ ๋น์ทํ๊ฐ?
์ฉ๋๋ ๋น์ทํ์ง๋ง, ๊ตฌ์กฐ๋ ์์ ํ ๋ค๋ฅด๋ค.
Linux์ whereis๋ binary/man/source ๊ตฌ์กฐ ๋ถ์์ด ํต์ฌ.
13. ๋ง๋ฌด๋ฆฌ : whereis๊ฐ ์ฃผ๋ ์ค์ ์ ๊ฐ์น
whereis๋ ํ์์ ์์ฃผ ์ฐ์ด์ง ์๋ ๋ช
๋ น์ด์ฒ๋ผ ๋ณด์ด์ง๋ง,
๋ฆฌ๋
์ค ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฐ ์์ด ํต์ฌ ์ญํ ์ ํ๋ค.
- binary๊ฐ ์ด๋์ ์๋์ง
- man์ ์ด๋์ ์ ์ฅ๋๋์ง
- source๋ ์ด๋์ ์์นํ๋์ง
- ์คํ ํ์ผ์ด ์์คํ ์ด๋์ ๋ฐฐ์น๋์ด ์๋์ง
์ด ๋ชจ๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ํ์ธํด์ฃผ๋ ๋๊ตฌ๋ whereis๊ฐ ์ ์ผํ๋ค.
ํนํ ํจํค์ง ๊ด๋ฆฌ, ๋๋ฒ๊น
, ์๋ฒ ๋๋ ๊ฐ๋ฐ, OpenWrt ๋ถ์ ํ๊ฒฝ์์๋
whereis๋ ๊ฑฐ์ ํ์์ ์ด๋ค.
“ํ๋ก๊ทธ๋จ์ ์์น๋ฅผ ์๋ฉด ์์คํ ๊ตฌ์กฐ๊ฐ ๋ณด์ธ๋ค.”