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

โœ”๏ธ Etc.

[Linux] ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(1) - ํŒŒ์ผ, ํด๋” ๊ด€๋ จ(ls, wc, find, grep)

728x90

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•œ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด(1) - ํŒŒ์ผ, ํด๋” ๊ด€๋ จ ๐Ÿ‘ป

  • ls
  • wc
  • find
  • grep

ls

ํŒŒ์ผ ๋ฆฌ์ŠคํŒ…
$ ls [option] [directory name]

[options]

-a ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ ๋ณด๊ธฐ
-l ์ƒ์„ธ์ •๋ณด ๋ณด๊ธฐ (๊ถŒํ•œ, ์†Œ์œ ์ž, ๊ฐฑ์‹ ์ผ)
-al ์ˆจ๊ฒจ์ง„ ํŒŒ์ผ + ์ƒ์„ธ์ •๋ณด ๋ณด๊ธฐ (๊ถŒํ•œ, ์†Œ์œ ์ž, ๊ฐฑ์‹ ์ผ)

 

ll
ls -l ๊ณผ ๋™์ผ

 

*
์ž„์˜์˜ ๋ฌธ์ž์—ด์„ ๋‚˜ํƒ€๋ƒ„
ls *  ํ˜„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ํŒŒ์ผ๊ณผ ์„œ๋ธŒ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚˜์—ด
ls -F a* ํ˜„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ a๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ํŒŒ์ผ ์ข…๋ฅ˜ ์ถœ๋ ฅ

wc

ํŒŒ์ผ ๋‚ด ๋ผ์ธ, ๋‹จ์–ด ๋ฌธ์ž์˜ ์ˆ˜ ๋ณด๊ธฐ
$ wc [option] [file]

[options]

-c ์ „์ฒด ๋ฌธ์ž์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ
-l ์ „์ฒด ๋ผ์ธ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ
-w ์ „์ฒด ๋‹จ์–ด์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅ

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด ํŒŒ์ผ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ณ  ์‹ถ์„ ๋•Œ

$ ls | wc -w

find

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์—์„œ ์ง€์ •๋œ ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ฐพ๋Š” ๋ช…๋ น์–ด
$ find [option] [path] [expression]

[options]

-p ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๊ณ , ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ž์ฒด ์ •๋ณด ์‚ฌ์šฉ.
-l ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์— ์—ฐ๊ฒฐ๋œ ํŒŒ์ผ ์ •๋ณด ์‚ฌ์šฉ.
-h ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š์œผ๋‚˜, Command Line Argument๋ฅผ ์ฒ˜๋ฆฌํ•  ๋• ์˜ˆ์™ธ.
-d ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ.

 

[expression]

-name : ์ง€์ •๋œ ๋ฌธ์ž์—ด ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ ๊ฒ€์ƒ‰.

-empty : ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ํฌ๊ธฐ๊ฐ€ 0์ธ ํŒŒ์ผ ๊ฒ€์ƒ‰.

-delete : ๊ฒ€์ƒ‰๋œ ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ.

-exec : ๊ฒ€์ƒ‰๋œ ํŒŒ์ผ์— ๋Œ€ํ•ด ์ง€์ •๋œ ๋ช…๋ น ์‹คํ–‰.

-path : ์ง€์ •๋œ ๋ฌธ์ž์—ด ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ๋กœ์—์„œ ๊ฒ€์ƒ‰.

-print : ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ. ๊ฒ€์ƒ‰ ํ•ญ๋ชฉ์€ newline์œผ๋กœ ๊ตฌ๋ถ„. (๊ธฐ๋ณธ ๊ฐ’)

-print0 : ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ. ๊ฒ€์ƒ‰ ํ•ญ๋ชฉ์€ null๋กœ ๊ตฌ๋ถ„.

-size : ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ๊ฒ€์ƒ‰.

-type : ์ง€์ •๋œ ํŒŒ์ผ ํƒ€์ž…์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ ๊ฒ€์ƒ‰.

-mindepth : ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ตœ์†Œ ๊นŠ์ด ์ง€์ •.

-maxdepth : ๊ฒ€์ƒ‰ํ•  ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ตœ๋Œ€ ๊นŠ์ด ์ง€์ •.

-atime : ํŒŒ์ผ ์ ‘๊ทผ(access) ์‹œ๊ฐ์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ ๊ฒ€์ƒ‰.

-ctime : ํŒŒ์ผ ๋‚ด์šฉ ๋ฐ ์†์„ฑ ๋ณ€๊ฒฝ(change) ์‹œ๊ฐ์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ ๊ฒ€์ƒ‰.

-mtime : ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ •(modify) ์‹œ๊ฐ์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์ผ ๊ฒ€์ƒ‰.

 

find ์‚ฌ์šฉ ์˜ˆ)

ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ฆฌ์ŠคํŠธ ํ‘œ์‹œ find
๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ฆฌ์ŠคํŠธ ํ‘œ์‹œ find [PATH]
ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜ ๋ชจ๋“  ํŒŒ์ผ ๋ฐ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -name [FILE]
์ „์ฒด ์‹œ์Šคํ…œ(๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ)์—์„œ ํŒŒ์ผ ๊ฒ€์ƒ‰ find / -name [FILE]
ํŒŒ์ผ ์ด๋ฆ„์ด ํŠน์ • ๋ฌธ์ž์—ด๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -name "STR*"
ํŒŒ์ผ ์ด๋ฆ„์— ํŠน์ • ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -name "*STR*"
ํŒŒ์ผ ์ด๋ฆ„์ด ํŠน์ • ๋ฌธ์ž์—ด๋กœ ๋๋‚˜๋Š” ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -name "*STR"
๋นˆ ๋””๋ ‰ํ† ๋ฆฌ ๋˜๋Š” ํฌ๊ธฐ๊ฐ€ 0์ธ ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -empty
ํŠน์ • ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ํŒŒ์ผ ๊ฒ€์ƒ‰ ํ›„ ์‚ญ์ œ find . -name "*.EXT" -delete
๊ฒ€์ƒ‰๋œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ค„ ๋ฐ”๊ฟˆ ์—†์ด ์ด์–ด์„œ ์ถœ๋ ฅํ•˜๊ธฐ find . -name [FILE] -print0
ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋งŒ ๊ฒ€์ƒ‰ํ•˜๊ธฐ find . -name [FILE] -type f
ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ๊ฒ€์ƒ‰ find . -size +[N]c -and -size -[M]c
๊ฒ€์ƒ‰๋œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด ์ถœ๋ ฅ. (find + ls) find . -name [FILE] -exec ls -l {} \;
๊ฒ€์ƒ‰๋œ ํŒŒ์ผ์˜ ๋ผ์ธ ์ˆ˜ ์ถœ๋ ฅ. (find + wc) find . -name [FILE] -exec wc-l {} \;
๊ฒ€์ƒ‰๋œ ํŒŒ์ผ์—์„œ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ. (find + grep) find . -name [FILE] -exec grep "STR" {} \;
๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ. (find, redirection) find . -name [FILE] > [SAVE_FILE]
๊ฒ€์ƒ‰ ์ค‘ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ธฐ (find, redirection) find . -name [FILE] 2> /dev/null
ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š๊ธฐ find . -maxdepth 1 -name [FILE]
๊ฒ€์ƒ‰๋œ ํŒŒ์ผ ๋ณต์‚ฌ. (find + cp) find . -name [FILE] -exec cp {} [PATH] \;

 

-exec ์˜ต์…˜ : find ๋ช…๋ น์–ด๋กœ ์ฐพ์€ ๊ฒฐ๊ณผ ๋Œ€์ƒ์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ์ ์šฉ

{} : find์—์„œ ์ฐพ์•„๋‚ธ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„

\; : -exec ๋‹ค์Œ ๋ถ€๋ถ„์— ๋‚˜์™€์žˆ๋Š” ๋ช…๋ น์–ด ์‹คํ–‰

 

์˜ˆ์‹œ) xml ํ™•์žฅ์ž์˜ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ ์ƒ์„ธ์ •๋ณด์™€ ํ•จ๊ป˜ ๋ณด์—ฌ์คŒ

$ find . name '*.xml' -exec ls -al {} \;

 


grep

ํ•˜์œ„ ํด๋”๋ฅผ ํฌํ•จํ•˜์—ฌ ์กด์žฌํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ์—์„œ ์›ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ฐพ์•„์ฃผ๋Š” ๋ช…๋ น์–ด
$ grep [option] [pattern] [file]

 

[options]

-r  ํ•˜์œ„๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ๊ฒ€์ƒ‰
-n ํŒŒ์ผ์˜ ๋ช‡๋ฒˆ์งธ ๋ผ์ธ์— ์žˆ๋Š”์ง€ ํ‘œ์‹œ
-i ๊ฒ€์ƒ‰์–ด๋ฅผ ๋Œ€์†Œ ๋ฌธ์ž ๊ตฌ๋ถ„์—†์ด ๊ฒ€์ƒ‰
-b ๋ฌธ์ž์™€ ์ผ์น˜ํ•˜๋Š” ์ค„์˜ ์‹œ์ž‘์  ์ถœ๋ ฅ
-c ๋ฌธ์ž์™€ ์ผ์น˜ํ•˜๋Š” ์ค„์˜ ์ˆ˜ ์ถœ๋ ฅ
-A ํŠน์ •๋ฌธ์ž ์•„๋ž˜ ์ถ”๊ฐ€๋กœ ์—ฌ๋Ÿฌ ํ–‰ ์ถœ๋ ฅ
-B ํŠน์ •๋ฌธ์ž ์œ„ ์ถ”๊ฐ€๋กœ ์—ฌ๋Ÿฌํ–‰ ์ถœ๋ ฅ

์˜ˆ์‹œ) FILE.txt์—์„œ "STR" ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰.

$ grep "STR" FILE1.txt     

LE.txt

๋ฐ˜์‘ํ˜•