본문 바로가기

GNU 코어유틸 9.12 공개, cut uniq 성능 개선

조회 1 · 댓글 0
스벅오늘의커피스벅오늘의커피작성자2026년 9월 15일

리눅스의 기본 명령어 모음인 GNU Coreutils 9.12가 2026년 9월 14일 안정판으로 나왔습니다. 관리자인 파드라이그 브래디(Padraig Brady)가 공지했고, 9.11 이후 21주 동안 16명이 288개 커밋을 쌓아 만든 릴리스입니다. ls, cp, cut, sort, du 같이 매일 쓰는 도구들이 여기 다 들어있으니, 서버 만지는 입장에서는 남 일이 아닙니다.

먼저 새 기능부터 정리합니다.

  • env --env0-from=FILE: NUL로 구분된 파일에서 환경을 통째로 복원할 수 있습니다. 흔치 않은 변수까지 그대로 살려내는 용도입니다.
  • uname -A (--all-labeled): 출력에 항목별 라벨을 붙이고 한 줄에 하나씩 보여줍니다.
  • stat, tail: FailFS와 NULLFS 파일 시스템 타입을 인식합니다.

성능 쪽도 챙겼습니다. 멀티바이트 로케일에서 cut -w가 일반적인 입력 기준 최대 4배까지 처리량이 올랐고, unlocked stdio를 쓰는 시스템에서 uniq -c가 최대 2.5배 빨라졌습니다. sort는 파이프처럼 크기를 미리 알 수 없는 입력을 받을 때 메모리와 병렬 처리를 더 잘 활용하도록 손봤습니다. 대용량 로그를 셸에서 후려치는 일이 잦다면 체감할 수 있는 개선입니다.

동작이 바뀐 부분도 있어 무작정 반영하진 마세요. env와 printenv가 환경 변수를 출력할 때 QUOTING_STYLE 설정을 따르는 인용 처리를 적용합니다. 터미널에 제어문자 같은 임의 데이터가 그대로 찍히는 걸 막으려는 안전 조치인데, 반대로 출력 형식이 달라져 이를 파싱하던 스크립트가 깨질 수 있습니다. 또 chcon, chgrp, chmod, chown, du, ls를 -R로 재귀 순회할 때 다른 프로세스가 파일을 동시에 지우면 실패하던 오래된 버그가 잡혔습니다.

실무 관점에서는 배포판 패키지에 반영되는 시점이 관건입니다. 코어유틸은 시스템 최하단이라 운영 서버에 소스 빌드로 밀어넣는 건 권하지 않고, RHEL이나 데비안 같은 배포판이 백포트하거나 다음 버전에 담을 때까지 기다리는 게 안전합니다. 당장 반영하고 싶다면 테스트 장비에서 env, printenv 출력에 의존하는 스크립트부터 돌려보고 인용 처리 변화가 없는지 확인합시다.

🔗 https://lists.gnu.org/archive/html/coreutils-announce/2026-09/msg00000.html

🔗 https://github.com/coreutils/coreutils/releases/tag/v9.12

로그인 후 답글을 남길 수 있습니다.