Rust๋กœ ์žฌ์ž‘์„ฑ๋œ coreutils ๋ฐ findutils ๋ณ€์ข…์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค

Rust ์–ธ์–ด๋กœ ์žฌ์ž‘์„ฑ๋œ GNU Coreutils ํŒจํ‚ค์ง€์˜ ์•„๋‚ ๋กœ๊ทธ๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋Š” uutils coreutils 0.0.18 ํˆดํ‚ท์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. Coreutils๋Š” sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ๋ฐ ls๋ฅผ ํฌํ•จํ•˜์—ฌ XNUMX๊ฐœ ์ด์ƒ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ํ•จ๊ป˜ โ€‹โ€‹์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๋Š” ๋ฌด์—‡๋ณด๋‹ค๋„ Windows, Redox ๋ฐ Fuchsia ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” Coreutils์˜ ๊ต์ฐจ ํ”Œ๋žซํผ ๋Œ€์ฒด ๊ตฌํ˜„์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. GNU Coreutils์™€ ๋‹ฌ๋ฆฌ Rust ๊ตฌํ˜„์€ GPL ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค ๋Œ€์‹  MIT ํ—ˆ์šฉ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • GNU Coreutils ์ฐธ์กฐ ํ…Œ์ŠคํŠธ ์ œํ’ˆ๊ตฐ๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ํ–ฅ์ƒ๋˜์–ด 340๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผ๋˜๊ณ  210๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ–ˆ์œผ๋ฉฐ 50๊ฐœ์˜ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฑด๋„ˆ๋›ฐ์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ ๋ฆด๋ฆฌ์Šค๋Š” GNU Coreutils 9.2์ž…๋‹ˆ๋‹ค.
    Rust๋กœ ์žฌ์ž‘์„ฑ๋œ coreutils ๋ฐ findutils ๋ณ€์ข…์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค
  • ํ–ฅ์ƒ๋œ ๊ธฐ๋Šฅ, ๊ฐœ์„ ๋œ ํ˜ธํ™˜์„ฑ ๋ฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ cksum, chmod, chroot, comm, cp, cut, date, dd, du, expand, env, factor, hashsum, install, ln, ls, mktemp, mv, nice, nproc์— ๋Œ€ํ•œ ๋ˆ„๋ฝ๋œ ์˜ต์…˜ ์ถ”๊ฐ€ , od, ptx, pwd, rm, ํŒŒ์‡„, ์ ˆ์ „ ๋ชจ๋“œ, stdbuf, stty, ๊ผฌ๋ฆฌ, ํ„ฐ์น˜, ์‹œ๊ฐ„ ์ดˆ๊ณผ, tr, uname, uniq, utmpx, ๊ฐ€๋™ ์‹œ๊ฐ„, wc.
  • ln, cp ๋ฐ mv ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ๋Œ€ํ™”์‹ ๋ชจ๋“œ(-i)๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • yes, tee ๋ฐ timeout ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ„ฐ๋ฏธ๋„์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด atty ๋Œ€์‹  is_terminal ํŒจํ‚ค์ง€๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™์‹œ์— uutils findutils 0.4.0 ํŒจํ‚ค์ง€๋Š” GNU Findutils ์ œํ’ˆ๊ตฐ(find, locate, updatedb ๋ฐ xargs)์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ Rust๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—์„œ:

  • GNU ํ˜ธํ™˜ printf ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • xargs ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ •๊ทœ์‹, POSIX ์™€์ผ๋“œ์นด๋“œ ๋ฐ "{}" ๋Œ€์ฒด์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด "-print0", "-lname", "-ilname", "-empty", "-xdev", "-and", "-P", "-", "-quit" ์˜ต์…˜์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€ "-๋งˆ์šดํŠธ", "-inum" ๋ฐ "-๋งํฌ".

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€