UnxUtils와 GnuWin32의 차이점은 무엇입니까?


17

내 명령 프롬프트에서 grep 및 sed와 같은 프로그램을 ls, cut 등과 같은 다른 유틸리티와 함께 ​​사용하려는 Windows 사용자입니다. 이것을 달성 할 수있는 2 개의 패키지를 발견했습니다.

두 기능의 현명함과 더 중요한 성능 현명함의 차이점이 무엇인지 알고 싶습니다. 내가 본 것에서 GnuWin32는 UnxUtils의 슈퍼 세트입니다. 이 올바른지 ?

Barlop
은이 질문에 coreutils와 unxutils에 대해 묻고 있었지만 grep과 sed에 대해 이야기하고 있었기 때문에 gnuwin32와 unxutils에 대해 묻는 것이 분명합니다. 그것은 실수 한 것보다 훨씬 유용하고 중요한 질문입니다. 사람들이 그것을 coreutils와 unxutils로 되돌리려면 그와 함께 가서 gnuwin32와 unxutils에 대한 다른 질문을 게시하게되어 기쁩니다. 또한, 원래의 질문에 대한 올바른 대답은 자신의 실수에 관한 수정 또는 대답뿐만 아니라 그가 의미 한 바에 대한 답변도 될 것입니다. 따라서 그의 질문을 수정하는 데 손실이 없습니다.

답변:


15

unxutils에는 실제로 가장 유용한 유틸리티가 많이 있습니다. 예를 들어 grep을 포함합니다.

gnuwin32 버전도 오래되었지만 unxutils만큼 오래되지는 않았습니다. Gnuwin32는 훨씬 더 많은 유틸리티를 가지고 있습니다. 그것은 분명히 큰 장점입니다.

gnuwin32는 unxutils에 비해 큰 장점을 가지고 있습니다.

예로서..

매우 오래된 유닉스 유틸리티

C:\unxutils>grep -V
grep (GNU grep) 2.4.2

Copyright 1988...

다소 오래된 gnuwin32

C:\blah>"c:\Program Files (x86)\GnuWin32\bin\grep.exe" -V
GNU grep 2.5.4

Copyright (C) 2009 ...

gnuwin32보다 최신 상태로 유지되는 소프트웨어와 대조 (예 : cygwin)

$ grep --version
grep (GNU grep) 2.21
Copyright (C) 2014 Free Software Foundation, Inc.

unxutils를 사용하면 실제로 이전 버전을 사용하므로 문제가 발생할 수 있으며 도움을 찾을 때 사람들이이 버전 또는 해당 명령의 최신 버전을 기대할 수 있습니다.

unxutils의 장점은 작지만 unxutils는 매우 유용합니다.

  • unxutils에는 xxd가 있고 gnuwin32는 없습니다. (VIM 7에도 xxd가 있으며 cygwin도 마찬가지입니다)
  • 글을 쓰는 현재 gnuwin32 (2014)는 꼬리 -f가 깨졌고 unxutils의 꼬리 -f는 오래되었지만 작동합니다. ( 여기서 Cygwin의 꼬리도 작동합니다). 두 가지 다른 경우에 나는 gnuwin32 grep에서 버그가 발생했습니다 .gnuwin32 grep은 이후 버전의 grep에서 수정되었으며 cygwin의 grep은 훨씬 늦었고 훌륭했습니다 (cmd.exe에서 직접 실행할 수 있으며 cmd.exe에서 실행할 필요가 없습니다) cygwin shell).

  • 다음은 작은 장점이지만, 매우 게 으르거나 빨리 사용하려면 unxutils는 압축 파일로 압축 파일을 추출하고 이동할 수 있습니다. Gnuwin32에는 다양한 비트를 설치하는 마법사가 포함되어 있으며, 일부 개별 유틸리티도 wget을위한 설치 실행 파일, grep을위한 설정 실행 파일 (grep-xxxx-bin.exe)과 같이 별도로 설치해야합니다. unxutils를 사용하면 zip 내의 wbin 디렉토리에서 추출 할 수 있습니다. 그것들이 구버전이지만 가능하다면 너무 게으르지 않으면 일반적으로 gnuwin32에 있는지 알 수 있습니다.

  • unxutils는 많은 동등한 gnuwin32 바이너리가 할 수없는 독립형으로 작동 할 수 있습니다. 따라서 gnuwin32를 원하지 않거나 설치할 수없는 경우 unxutils에서 독립형 명령을 사용할 수 있습니다. 예를 들어 gnuwin32의 tr.exe는 디렉토리에 두 개의 dll 파일이 필요하거나 존재하지 않으며 실행되지 않는다고 말합니다. gnuwin32의 sed는 독립형으로 작동하지 않는 반면 unxutils tr.exe 및 sed.exe는 독립형으로 작동합니다.
  • unxutils에는 gclip.exe 및 pclip.exe가 있습니다. 클립 보드에 복사하여 클립 보드에서 붙여 넣기 명령입니다. gnuwin32는 그와 비슷한 것을 가지고 있지 않으며 Windows에는 기본적으로 clip.exe (클립 보드에 복사)가 있지만 pclip처럼 붙여 넣는 명령은 없습니다.

unxutils sourceforge 링크에는 unxutils.zip 및 unxupdates.zip이 있습니다 (후자는 unxutils.zip의 하위 세트이지만 이후 버전은 이전 버전 임). 예를 들어 unxutils는 1998 년부터 sed를, unxupdates는 2003 년부터 sed를 사용합니다. 예를 들어 1998 년 sed에는 \ d 또는 \ x 표기법이 없습니다 (예 : \ d34 또는 \ x22). unxupdates는 2003 년부터 시작되었습니다.

gnuwin32 sed는 2009 년부터 작성되었습니다. (Gnuwin32는 2014 년에도 grep 버전이 있기 때문에 아직 오래되었지만 http://ftp.gnu.org/gnu/grep/ 이지만 gnuwin32는 훨씬 오래되었습니다. unxutils보다 (unxutils가 'unxupdates'로 간주되는 경우에도).

http://unxutils.sourceforge.net/의 사이트의 unxutils.zip은 다운 만 볼 수 있습니다 https://archive.org/details/UnxUtils 공식적으로 https://sourceforge.net/projects/unxutils/ 당신이 있다면 그것을 얻는 다음 unxupdates도 다운로드하십시오.

gnuwin32를 unxutils와 비교하는 것은 일반적으로 Gnuwin32를 살펴 보지만 unxutils에는 몇 가지 장점이 있다는 것을 알고 있습니다. Gnuwin32에는 unxutils가 갖는 거의 모든 명령과 그 이상의 기능이 있습니다.

또한 Cygwin을 살펴보십시오 .gnuwin32보다 훨씬 많은 최신 유틸리티가 있습니다 (cygwin의 bash 쉘에서 실행해야 함). 일반적으로 볼 필요가 없습니다. pclip과 gclip이 있지만 고대와 unxutils처럼 업데이트되지 않은 것.

gnuwin32 및 unxutils 외에도 MinGW 및 cygwin 및 Windows SUA (작성 당시 MS는 여전히 유지 관리하고 최신 상태 임) 및 GOW (작지만 GOW github 페이지에 마지막 업데이트 2014로 표시됨)가 있으며 더 작지만 BusyBox (Android로 유명하지만 Windows에서 사용할 수 있으며 여전히 매우 작습니다). 나에게 가장 인상적인 두 가지는 gnuwin32와 cygwin이다. (그리고 cygwin은 xxd와 working tail -f이다. 따라서 unxutils에 의존 할 필요가 없다.) cygwin을 사용하면 cygwin 쉘에서 프로그램을 실행해야한다. 쉘 예 : bash 쉘 및 bash 및 기타 Linux 쉘은 강력하므로 손실이 없습니다. 또한 오늘날 많은 사람들이 cygwin 또는 gnuwin32 대신 Linux 가상 머신을 사용한다는 점에 유의하십시오. cygwin 또는 gnuwin32는 이전 버전 일 수 있고 따옴표로 다르게 작동 할 수있는 Windows 포트가 아닌 올바른 버전의 명령을 실제로 가져옵니다.

노트 추가coreutils (일명 gnu coreutils)는 Linux (..)에서 실행되는 많은 명령이며 의심 할 여지없이 GNU OS (허용되지 않은 OS!)를 포함하며 다른 * nix OS에 대해 적절한 구현을 수행했을 것입니다. GNU Coreutils는 잘 알려져 있으며 매우 널리 사용되고 유용하고 업데이트되었습니다. 다른 한편으로 unxutils는 사람들이 리눅스 나 유닉스에서 사용하는 일부 명령의 아주 오래된 구현 / 포트입니다 (이것은 의심 할 여지없이 일부 coreutils 명령을 포함합니다). 두 문장은 일반적으로 같은 문장에서 언급되지 않았으며 원래 질문에 있었던 유일한 이유는 원래 질문에 약간의 혼란이 있었기 때문입니다. GnuWin32에는 Gnuwin32 coreutils라는 Windows 용 coreutils의 구현이 있습니다. 언급 한 바와 같이 Gnuwin32는 이전 / 업데이트되지 않고 오래된 / 업데이트되지 않은 unxutils입니다.


3
gnuwin32 및 unxutils 외에도 MinGW 및 cygwin 및 Windows SUA 및 GOW가 있습니다. 나에게 가장 인상적인 두 가지는 gnuwin32와 cygwin입니다 (cygwin에는 xxd와 작동 꼬리가 있습니다 -f. 따라서 unxutils에 의존 할 필요가 없습니다) cygwin을 사용하면 cygwin 쉘에서 프로그램을 실행해야하지만 Linux 쉘 예를 들어 bash 쉘과 bash 및 기타 Linux 쉘은 강력하므로 손실이 없습니다.
barlop

unxutils의 아직 살아남은 장점 중 하나 pclip는 클립 보드의 내용을 붙여 넣을 수있는 명령입니다.
barlop

또한 * nix VM을 설정하고 서로 잘 읽고 쓸 수 있도록 통합 된 것이 좋을 것입니다. 그러면 최신 * nix 명령을 사용할 수 있습니다.
barlop

6

Unxutils는 Windows 고유이며 의존성이 없지만 한동안 업데이트되지 않았으며 coreutils의 하위 세트입니다. coreutils에는 * nix 스타일 환경이 필요하므로 cygwin 또는 이와 유사한 환경에서 실행해야합니다.


3
Windows 용 coreutils 설치 프로그램은 모든 종속성을 관리해야합니다. gnuwin32.sourceforge.net/packages/coreutils.htm
Nifle

1
unxutils는 기술적으로 coreutils의 하위 집합이 아닙니다. 명령 버전 외에. unxutils에는 xxd가 있으며 어떤 coreutils 및 gnuwin32에도 없습니다. 또한 글을 쓰는 시점에서 gnuwin32에는 꼬리 -f가 부러져 있지만 unxutils의 tail.exe -f는 정상적으로 작동합니다. sourceforge.net/p/gnuwin32/bugs/242 또한 gnuwin32는 자체 코어 유틸리티를 가지고 있습니다 gnuwin32.sourceforge.net/packages/coreutils.htm
barlop

2
UnxUtils는 평범한 오래된 Windows 명령 행에서 잘 작동하며 Cygwin이 필요하지 않습니다 (아마도 자체 유닉스 명령 행 유틸리티가 제공 될 수 있음).
PhiLho

1
@Nifle 글쎄, 그래도 여전히 unxutils는 의존성이 없으며 [설치 프로그램이 처리하는 방식을 추가하고있다] gnuwin32 EXE는 의존하는 DLL이 거의없는 것과 동일한 디렉토리에서 실행되어야하므로 설치 관리자는 bin 디렉토리에 DLL 파일 세트를 배치합니다.
barlop

1
"coreutils에는 * nix 스타일 환경이 필요하므로 cygwin 또는 이와 유사한 환경에서 실행해야합니다"<-무슨 뜻인지 잘 모르겠습니다. Unxutils는 * nix 쉘없이 Windows 환경에서 실행됩니다. 그리고 wget 및 xxd와 같은 coreutils에는없는 것들이 있으므로 coreutils의 하위 집합이 아닙니다. 또한 cygwin 명령조차 기술적으로 cygwin 외부의 cmd에서 직접 실행할 수 있습니다.
barlop

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.