๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Linux

Redirection

by Soono991 2023. 5. 7.
๐Ÿ’ก ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Redirection์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Redirection์€ ํ„ฐ๋ฏธ๋„์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ํ‘œ์ค€ ์ž…๋ ฅ ๋ฐ ํ‘œ์ค€ ์ถœ๋ ฅ, ๊ทธ๋ฆฌ๊ณ  ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” Linux์˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

 

 

 

์ถœ์ฒ˜: https://www.redhat.com/sysadmin/linux-shell-redirection-pipelining

 

์œ„์™€ ๊ฐ™์ด ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ‚ค๋ณด๋“œ๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (ํ‘œ์ค€ ์ž…๋ ฅ)

๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ๊ณผ ์—๋Ÿฌ๋Š” ํ„ฐ๋ฏธ๋„๋กœ ๋ณด์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. (ํ‘œ์ค€ ์ถœ๋ ฅ, ํ‘œ์ค€ ์—๋Ÿฌ)

 

stdin(ํ‘œ์ค€ ์ž…๋ ฅ): 0
stdout(ํ‘œ์ค€ ์ถœ๋ ฅ): 1
stderr(ํ‘œ์ค€ ์—๋Ÿฌ): 2

 

์—ฌ๊ธฐ์„œ 0, 1, 2์˜ ์˜๋ฏธ๋Š” ํŒŒ์ผ ์„œ์ˆ ์ž(File Descriptor)๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. 

 

'>'๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๊ธฐ

ํ‘œ์ค€ ์ถœ๋ ฅ์€ ํŒŒ์ผ ์„œ์ˆ ์ž 1๋ฒˆ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๊ณ  ํ‘œ์ค€ ์—๋Ÿฌ๋Š” ํŒŒ์ผ ์„œ์ˆ ์ž 2๋ฒˆ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ„ฐ๋ฏธ๋„๋กœ ์„ค์ •์ด ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์ถœ๋ ฅ, ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ redirection ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” '>'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

command > file,
command 1> file 
→ ํ‘œ์ค€ ์ถœ๋ ฅ์„ file๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. 1์€ ํ‘œ์ค€ ์ถœ๋ ฅ ํŒŒ์ผ ์„œ์ˆ ์ž๋ฅผ ๋œปํ•˜๋ฉฐ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

command 2> file 
→ ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ file๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. 2๋Š” ํ‘œ์ค€ ์—๋Ÿฌ ํŒŒ์ผ ์„œ์ˆ ์ž๋ฅผ ๋œปํ•˜๋ฉฐ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ๋‹ฌ๋ฆฌ 2๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

command 2>&1
→ ํ‘œ์ค€ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

command > file 2>&1
→ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํŒŒ์ผ๋กœ ๋ณด๋‚ด๋ฉฐ, ํ‘œ์ค€ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
→ ๋”ฐ๋ผ์„œ ํ‘œ์ค€ ์—๋Ÿฌ, ํ‘œ์ค€ ์ถœ๋ ฅ ๋ชจ๋‘ ํŒŒ์ผ๋กœ ๋ณด๋‚ด์ง‘๋‹ˆ๋‹ค.

์ด๋•Œ ์‚ฌ์šฉ๋œ ">&"๋ฅผ Merge Redirection(๋จธ์ง€ ๋ฆฌ๋‹ค์ด๋ ‰์…˜)์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

command &> file
→ ํ‘œ์ค€ ์ถœ๋ ฅ, ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ ํŒŒ์ผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

ls ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ด ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์„ค์ •๋œ ํ„ฐ๋ฏธ๋„๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

ls ๊ฒฐ๊ณผ๋ฅผ ํ„ฐ๋ฏธ๋„์ด ์•„๋‹Œ test ํŒŒ์ผ๋กœ ๋ณด๋‚ด๋ฉด ๋” ์ด์ƒ ls ๊ฒฐ๊ณผ๊ฐ€ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

ํ‘œ์ค€ ์ถœ๋ ฅ๋งŒ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ํ„ฐ๋ฏธ๋„๋กœ ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค.

์—๋Ÿฌ๋„ ๋™์ผํ•˜๊ฒŒ ํŒŒ์ผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

 

๋˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

/dev/null์€ ํ•ญ์ƒ ๋น„์–ด ์žˆ๊ณ  /dev/null์— ๋ณด๋‚ด์ง„ ๋ฐ์ดํ„ฐ๋Š” ๋ฒ„๋ ค์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ํ‘œ์ค€ ์ถœ๋ ฅ, ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” /dev/null๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•ฉ๋‹ˆ๋‹ค.

 

 

'>>'๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๊ธฐ

์•ž์„œ ์ •๋ฆฌํ•œ '>' ๋ฆฌ๋‹ค์ด๋ ‰์…˜์˜ ๊ฒฝ์šฐ ์ถœ๋ ฅ, ์—๋Ÿฌ ๊ฒฐ๊ณผ๋ฅผ ํ•ญ์ƒ ๋ฎ์–ด์“ด๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ธฐ์กด์˜ ๋‚ด์šฉ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋‚ด์šฉ๋“ค์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” '>'๊ฐ€ ์•„๋‹Œ '>>'์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์•„๊นŒ์™€ ๋‹ฌ๋ฆฌ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋“ค์ด ๋ˆ„์ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

'<'๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๊ธฐ

'<'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ‘œ์ค€ ์ž…๋ ฅ์„ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cat ๋ช…๋ น์–ด์˜ ๊ฒฝ์šฐ ์ธ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํ‘œ์ค€ ์ž…๋ ฅ์ธ ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ์„ ๋ฐ›์„ ํŒŒ์ผ๋ช…์„ ์ž‘์„ฑํ•ด์„œ ํ•ด๋‹น ํŒŒ์ผ์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, '<' ๋ฆฌ๋‹ค์ด๋ ‰์…˜์„ ์ด์šฉํ•ด์„œ๋„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

'<<'๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ž‘์„ฑํ•œ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž‘์„ฑํ•œ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ๋  ๊ฒฝ์šฐ ์ฆ‰์‹œ ์ž…๋ ฅ์„ ์ข…๋ฃŒํ•˜๋ฉฐ ์ด๋•Œ๊นŒ์ง€ ์ž…๋ ฅ๋œ ์ •๋ณด๋Š” ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

์ฐธ๊ณ  ์ž๋ฃŒ

 

 

๋Œ“๊ธ€