UnxUtils 和 GnuWin32 的区别?

Sto*_*dow 20 gnu command-line gnuwin32

我是一个 Windows 用户,他希望在我的命令提示符中使用 grep 和 sed 等程序以及 ls、cut 等其他实用程序。我遇到了 2 个可以完成此任务的软件包

在我选择它们之前,我想知道两者在功能方面和更重要的性能方面有什么区别。从我所见,GnuWin32 是 UnxUtils 的超级集。这样对吗 ?

Barlop 指出,
这个问题是关于 coreutils 和 unxutils,但由于他在谈论 grep 和 sed,很明显他想询问 gnuwin32 和 unxutils,这是一个比错误的问题更有用和重要的问题。如果人们想将其恢复为 coreutils 和 unxutils,那么我很乐意这样做并为 gnuwin32 和 unxutils 发布另一个问题。此外,对他的原始问题的任何正确答案都将纠正或回答他的错误,但也能回答他的意思。所以纠正他的问题没有损失。

bar*_*lop 17

unxutils 有一些最有用的实用程序的旧版本。例如包括grep。

gnuwin32 版本也已经过时多年,尽管不像 unxutils 那样古老。Gnuwin32 有更多的实用程序。这显然是一大优势。

请记住,与 unxutils 相比,gnuwin32 具有这一主要优势。

举个例子..

极其古老的 unxutils

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

Copyright 1988...
Run Code Online (Sandbox Code Playgroud)

相当古老的 gnuwin32

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

Copyright (C) 2009 ...
Run Code Online (Sandbox Code Playgroud)

与保持比 gnuwin32 更新的软件(例如 cygwin)相比

$ grep --version
grep (GNU grep) 2.21
Copyright (C) 2014 Free Software Foundation, Inc.
Run Code Online (Sandbox Code Playgroud)

使用 unxutils,您可能会遇到问题,因为它使用的是非常旧的版本,并且在寻求帮助时人们会希望您拥有这个或那个命令的最新版本。

unxutils 有一些较小的优势,这使得 unxutils 非常有用。

  • unxutils 有 xxd,gnuwin32 没有。(注意,VIM 7 也有 xxd,cygwin 也有)
  • gnuwin32 截至写作(2014 年)有一个断尾 -f,unxutils 的 tail -f 较旧但有效。(这里提到 Cygwin 的尾巴也有效)。在两个不同的情况下,我遇到了 gnuwin32 grep 中的错误,这些错误已在更高版本的 grep 中得到修复,而 cygwin 的 grep 更晚而且很好(并且可以直接从 cmd.exe 运行,而不必从cygwin 外壳)。

  • 下面是一个较小的优势,但如果你很懒惰,或者只是想快速使用它,那么 unxutils 只是一个 zip,你可以解压缩可执行文件然后去。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 年的一个。这可以帮助例如 1998 sed 没有 \d 或 \x 符号 egeg \d34 或 \x22 来指定引号(比转义引号更容易)。unxupdates 是从 2003 年开始的。

在撰写本文时,gnuwin32 sed 是 2009 年的。(Gnuwin32 仍然过时,因为即使是 2014 http://ftp.gnu.org/gnu/grep/也有 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 shell 运行,这对我来说很好),您通常不需要查看一些古老的东西,没有像 unxutils 那样更新,尽管它确实有 pclip 和 gclip。

除了 gnuwin32 和 unxutils 之外,还有 MinGW 和 cygwin 以及 Windows SUA(在撰写本文时,MS 仍在维护并且会是最新的)和 GOW(虽然很小,但 GOW github 页面显示它是 2014 年最后更新的)和仍然更小,BusyBox(以安卓而闻名,但适用于 Windows,这里仍然很小. 对我来说最令人印象深刻的两个是 gnuwin32 和 cygwin(并且 cygwin 有 xxd 和一个有效的 tail -f。所以我不需要求助于 unxutils)使用 cygwin,程序应该真正从 cygwin shell 运行,但它是一个 linux shell 例如 bash shell 和 bash 以及其他 linux shell 功能强大,因此不会有任何损失。还请记住,现在许多人使用 linux 虚拟机而不是 cygwin 或 gnuwin32,它们确实会更新命令的正确版本,而不是 Windows 端口,这些端口可能更旧并且可以用引号引起不同的行为。

添加注意-coreutils 又名 gnu coreutils,是一堆在 linux (..) 上运行的命令,毫无疑问是带有 Herd 的 GNU 操作系统(一个不太广泛使用的操作系统!),并且可能为其他 *nix 操作系统做了一些不错的实现。GNU Coreutils 是众所周知的,并且使用极其广泛、有用和更新。另一方面, unxutils 是人们在 linux 或 unix 上使用的一些命令的非常古老的实现/端口(无疑包括一些 coreutils 命令),为 Windows 操作系统完成。这两者通常甚至不会在同一句话中被提及,他们出现在原始问题中的唯一原因是由于原始问题中的一些混淆。GnuWin32 确实有一个适用于 Windows 的 coreutils 实现,称为 Gnuwin32 coreutils ,尽管如前所述,Gnuwin32 旧/未更新,只是不像 unxutils 那样旧/未更新。

  • 除了 gnuwin32 和 unxutils,还有 MinGW 和 cygwin 以及 Windows SUA 和 GOW。对我来说最令人印象深刻的两个是 gnuwin32 和 cygwin(并且 cygwin 有 xxd 和一个有效的 tail -f。所以我不需要求助于 unxutils)使用 cygwin,程序应该真正从 cygwin shell 运行,但它是一个 linux shell例如 bash shell 和 bash 以及其他 linux shell 功能强大,因此不会有任何损失。 (3认同)

Jou*_*eek 6

Unxutils 是 Windows 原生的,并且没有任何依赖项 - 但有一段时间没有更新,并且是 coreutils 的一个子集。你需要一个用于 coreutils 的 *nix 风格的环境,所以你需要在 cygwin 或类似的环境中运行它们

  • 适用于 windows 的 coreutils 安装程序应处理所有依赖项 http://gnuwin32.sourceforge.net/packages/coreutils.htm (3认同)
  • UnxUtils 在普通的旧 Windows 命令行中运行良好,不需要 Cygwin(无论如何它可能会提供自己的 Unix 命令行实用程序)。 (2认同)