web-dev-qa-db-ja.com

UnxUtilsとGnuWin32の違いは?

私はWindowsユーザーで、コマンドプロンプトでgrepやsedのようなプログラムと、ls、cutなどの他のユーティリティが必要です。これを達成する2つのパッケージに出くわしました

どちらかを選択する前に、機能面とパフォーマンス面の両方の違いを知りたいと思います。私が見たところ、GnuWin32はUnxUtilsのスーパーセットです。これは正しいです ?

Barlopによるメモ
この質問はcoreutilsとunxutilsについて質問していましたが、彼はgrepとsedについて話していたので、gnuwin32とunxutilsについて質問するつもりだったのは明らかです。これは、間違った質問よりもはるかに有用で重要な質問です。もし人々がそれをcoreutilsとunxutilsに戻したいのなら、私はそれを喜んで受け入れて、gnuwin32とunxutilsについて別の質問を投稿したいと思います。また、彼の元の質問に対する適切な答えは、彼の間違いに関して訂正または答えるだけでなく、彼が意味したことにも答えます。したがって、彼の質問を訂正しても損失はありません。

18
Stormshadow

unxutilsには、最も便利なユーティリティのいくつかの本当に古いバージョンがあります。たとえば、grepを含みます。

gnuwin32バージョンも、unxutilsほど古くはありませんが、何年も古くなっています。 Gnuwin32には、はるかに多くのユーティリティがあります。それは明らかに大きな利点です。

Gnuwin32には、unxutilsよりも大きな利点があることに注意してください。

例として..

非常に古い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にもあります)
  • 執筆時点(2014)のgnuwin32の尾部が壊れています-unxutilsの尾部-fは古いですが動作します。 (言及 ここ Cygwinの尻尾も動作します)。 2つの異なる機会に、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は、そのディレクトリに2つのdllファイルを必要とします。そうでない場合、それらは存在せず、実行されません。 gnuwin32のsedはスタンドアロンでは機能しませんが、unxutilstr.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があります。 1998sedには\ dまたは\ x表記がありません。例えば\ d34または\ x22(引用符をエスケープするよりも簡単)を指定します。 unxupdatesは2003年のものであり、実際に行われます。

Gnuwin32 sedは、執筆時点では2009年のものです。(2014年でもgrepバージョンがあるため、Gnuwin32はまだ古くなっています 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でも使用できますが、まだ非常に小さいです 。私にとって最も印象的な2つの機能は、gnuwin32とcygwin(およびcygwinにはxxdと有効なテール-fがあるため、unxutilsに頼る必要はありません)cygwinを使用すると、プログラムは実際にはcygwinシェルから実行する必要がありますが、Linuxシェル(bashシェルやbashなどのLinuxシェルは強力であるため)また、最近の多くの人々は、cygwinやgnuwin32の代わりにLinux仮想マシンを使用していることにも留意してください。これは、古い可能性があり、引用符で異なる動作をするWindowsポートではなく、コマンドの適切なバージョンを最新に保つためです。

追加の注意-coreutils別名gnu coreutilsは、Linux(..)で実行される一連のコマンドであり、間違いなくGNU OS with Herd(あまり広く使用されていないOS!)であり、おそらく他の* nixOSに対していくつかの適切な実装が行われています。GNU Coreutilsはよく知られており、非常に広く使用されており、便利です。一方、unxutilsは、Linuxまたはunixで使用されるいくつかのコマンド(間違いなくいくつかのcoreutilsコマンドが含まれます)の非常に古い実装/ポートであり、WindowsOS用に実行されます。2つは通常は言及されません。同じ文で、元の質問にあった唯一の理由は、元の質問の混乱によるものでした。GnuWin32には、Gnuwin32 coreutilsと呼ばれるWindows用のcoreutilsの実装がありますが、前述のように、Gnuwin32は古い/更新されていません。 、unxutilsほど古くなく、更新されていません。

16
barlop

UnxutilsはWindowsネイティブであり、依存関係はありませんが、しばらくの間更新されておらず、coreutilsのサブセットです。 coreutilsには* nixスタイルの環境が必要なので、cygwinなどで実行する必要があります。

6
Journeyman Geek

GnuWin32のCoreutilsには「カット」があります。 http://gnuwin32.sourceforge.net/packages/coreutils.htm を参照してください

1
GnuWIn32