UnxUtilsとGnuWin32の違いは?


17

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

どちらを選ぶかを決める前に、機能とより重要なパフォーマンスの両方の2つの違いを知りたいと思います。私が見たものから、GnuWin32はUnxUtilsのスーパーセットです。これは正しいです ?

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

回答:


15

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にもあります)
  • 執筆時点のgnuwin32(2014)は壊れたtail -fを持っています。unxutilsのtail -fは古いですが動作します。(ここで説明した Cygwinのテールも機能します)。2つの異なる機会に、gnuwin32 grepのバグに遭遇しましたが、これはgrepの新しいバージョンで修正されており、cygwinのgrepははるかに遅くて問題ありません(そしてcmd.exeから直接実行することができ、から実行する必要はありませんcygwin shell)。

  • 以下は小さな利点ですが、もしあなたがとても怠け者であるか、単にそれをすぐに使いたいなら、unxutilsは実行ファイルを展開して実行できるただのzipです。Gnuwin32には、さまざまなビットをインストールするためのウィザードが含まれます。また、wgetのセットアップ実行可能ファイル、grepの例(grep-xxxx-bin.exe)など、個別のユーティリティでさえ個別にインストールする必要があります。unxutilsを使用すると、zip内のwbinディレクトリから抽出するだけです。それらは古いバージョンですが、可能であれば、あまり面倒ではない場合、gnuwin32にあるかどうかを確認してください。

  • unxutilsは、多くの同等のgnuwin32バイナリではできないスタンドアロンで動作できます。したがって、gnuwin32をインストールしたくない、またはインストールできない場合は、unxutilsからスタンドアロンのコマンドを使用できます。たとえば、gnuwin32のtr.exeには、そのディレクトリに2つの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のサブセットですが、まだ古いバージョンですが)。たとえば、1998年からunxutilsが、2003年からunxupdatesがsedになりました。これは、たとえば1998 sedに\ dまたは\ x表記がない場合に役立ちます(例:引用符をエスケープするよりも簡単に)\ d34または\ x22 unxupdatesの1つは2003年からのもので、現在もそうです。

執筆時点のgnuwin32 sedは2009年のものです(2014年のhttp://ftp.gnu.org/gnu/grep/にもgrepバージョンがあるため、Gnuwin32はまだ古くなっていますが、 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(アンドロイドで有名ですが、Windowsで利用可能です、ここではまだ非常に小さいです。私にとって最も印象的な2つの機能は、gnuwin32とcygwinです(cygwinにはxxdとテイル-fがあります。したがって、unxutilsに頼る必要はありません)cygwinでは、プログラムは実際にはcygwinシェルから実行されますが、そのLinuxシェル(bashシェル、bashなどのLinuxシェルなど)は強力なので、損失はありません。また、今日では多くの人がcygwinやgnuwin32の代わりにlinux仮想マシンを使用していることを覚えておいてください。

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


3
gnuwin32とunxutilsの他に、MinGWとcygwin、Windows SUAとGOWもあります。私にとって最も印象的な2つは、gnuwin32とcygwinです(cygwinにはxxdと有効なテール-fがあります。したがって、unxutilsに頼る必要はありません)cygwinでは、プログラムは実際にはcygwinシェルから実行する必要がありますたとえば、bashシェルとbashおよびその他のLinuxシェルは強力なので、損失はありません。
barlop

unxutilsの利点の1つ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のtail -fは壊れていますが、unxutilsのtail.exe -fは正常に動作します。sourceforge.net/p/gnuwin32/bugs/242また、gnuwin32には独自のcoreutils gnuwin32.sourceforge.net/packages/coreutils.htm
barlop

2
UnxUtilsは単純な古いWindowsのコマンドラインで正常に動作し、Cygwinを必要としません(おそらく、独自のUnixコマンドラインユーティリティを使用します)。
ピロ

1
@Nifleええ、はい、それでもunxutilsには依存関係がなく、[インストーラーがそれを処理する方法を追加します] gnuwin32 EXEは、依存しているいくつかのDLLと同じディレクトリで実行する必要があります。インストーラーは、一連のDLLファイルをbinディレクトリーに配置します。
-barlop

1
「coreutilsには* nixスタイルの環境が必要なので、cygwinなどで実行する必要があります」と書いている<-意味がわからない。UnxutilsはWindows環境で実行され、* nixシェルはありません。また、wgetやxxdなどのcoreutilsにはないものがあるため、coreutilsのサブセットではありません。また、cygwinコマンドでさえ、技術的にはcygwinの外部のcmdから直接実行できます。
barlop

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.