Perbedaan antara UnxUtils dan GnuWin32?

17

Saya adalah pengguna Windows yang menginginkan program seperti grep dan sed bersama dengan utilitas lain seperti ls, cut dll di command prompt saya. Saya menemukan 2 paket yang akan mencapai ini

Saya ingin tahu apa perbedaan antara kedua fitur bijaksana dan yang lebih penting kinerja bijaksana sebelum saya memilih di antara mereka. Dari apa yang saya lihat GnuWin32 adalah set super UnxUtils. Apakah ini benar ?

Catatan oleh Barlop
pertanyaan ini menanyakan tentang coreutils dan unxutils, tetapi karena dia berbicara tentang grep dan sed, jelas dia bermaksud bertanya tentang gnuwin32 dan unxutils, dan itu adalah pertanyaan yang jauh lebih berguna dan penting daripada yang salah. Jika orang ingin mengembalikannya ke coreutils dan unxutils maka saya akan senang untuk pergi dengan itu dan memposting pertanyaan lain untuk gnuwin32 dan unxutils. Juga, setiap jawaban yang tepat untuk pertanyaan aslinya akan mengoreksi atau menjawab tentang kesalahannya tetapi juga menjawab apa yang dia maksudkan. Jadi tidak ada salahnya mengoreksi pertanyaannya.

Bayangan badai
sumber

Jawaban:

15

unxutils memiliki versi lama dari beberapa utilitas yang paling berguna. termasuk grep misalnya.

Versi gnuwin32 juga bertahun-tahun kedaluwarsa, meskipun tidak setua unxutils. Gnuwin32 memiliki jumlah utilitas yang jauh lebih besar. Itu jelas keuntungan besar.

Ingatlah bahwa gnuwin32 memiliki keunggulan besar dibandingkan unxutils.

Sebagai contoh..

Unxutils yang sangat tua

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

Copyright 1988...

Gnuwin32 yang agak lama

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

Copyright (C) 2009 ...

Kontras dengan perangkat lunak yang terus diperbarui daripada gnuwin32 misalnya cygwin

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

Dengan unxutils, Anda dapat mengalami masalah karena menggunakan versi yang sangat lama, dan ketika mencari bantuan orang akan mengharapkan Anda memiliki versi terbaru dari perintah ini atau itu.

Ada beberapa keuntungan kecil yang dimiliki unxutils, yang membuat unxutils sangat berguna.

  • unxutils memiliki xxd, gnuwin32 tidak. (Catatan, VIM 7 juga memiliki xxd, begitu pula cygwin)
  • gnuwin32 pada saat menulis (2014) memiliki ekor rusak -f, ekor unxutils -f lebih tua tetapi berfungsi. (disebutkan di sini , ekor Cygwin juga berfungsi). Pada dua kesempatan yang berbeda saya telah menemukan bug di grep gnuwin32 yang telah diperbaiki di versi grep dan grep cygwin yang lebih baru dan lebih baik (dan dapat dijalankan langsung dari cmd.exe dan tidak harus dijalankan dari cygwin shell).

  • berikut ini adalah keuntungan yang lebih kecil, tetapi jika Anda sangat malas, atau hanya ingin menggunakannya dengan cepat, maka unxutils hanyalah sebuah zip Anda dapat mengekstrak executable dan pergi. Gnuwin32 melibatkan wizard untuk menginstal berbagai bit, dan bahkan beberapa utilitas individual harus diinstal secara terpisah seperti setup yang dapat dieksekusi untuk wget, satu untuk grep misalnya (grep-xxxx-bin.exe). dengan unxutils Anda cukup mengekstrak dari direktori wbin mereka di dalam zip. Ingatlah bahwa ini adalah versi yang lebih lama sehingga jika memungkinkan, jika tidak terlalu malas, orang biasanya akan melihat apakah gnuwin32 memilikinya.

  • unxutils dapat bekerja mandiri di mana banyak dari biner gnuwin32 yang setara tidak bisa. Jadi, jika Anda tidak ingin atau tidak dapat menginstal gnuwin32 maka Anda dapat menggunakan perintah standalone, dari unxutils. Sebagai contoh, tr.exe gnuwin32 membutuhkan dua file dll dalam direktori atau mengatakan mereka tidak ada dan tidak akan berjalan. sed gnuwin32 tidak bekerja mandiri, sedangkan unxutils tr.exe dan sed.exe berfungsi dengan baik mandiri.
  • unxutils memiliki gclip.exe dan pclip.exe Mereka adalah perintah untuk menyalin ke clipboard dan menempel dari clipboard. gnuwin32 tampaknya tidak memiliki yang seperti itu, dan windows memiliki clip.exe (untuk menyalin ke clipboard), tetapi tidak ada perintah untuk menempelkannya seperti pclip.

Tautan sourceforge unxutils memiliki unxutils.zip dan unxupdates.zip (yang terakhir menjadi subset dari unxutils.zip tetapi dengan versi yang lebih baru meskipun masih lama). misalnya unxutils memiliki sed dari 1998, dan unxupdates memiliki satu dari 2003. Itu dapat membantu misalnya sed 1998 tidak memiliki \ d atau \ x notasi egeg \ d34 atau \ x22 untuk menentukan kutipan (lebih mudah daripada melarikan diri kutipan) ,. Yang tidak diperbarui adalah dari tahun 2003 dan tidak.

The gnuwin32 sed, pada saat penulisan, adalah dari 2009. (Gnuwin32's masih ketinggalan zaman karena ada versi grep bahkan untuk 2014 http://ftp.gnu.org/gnu/grep/ tetapi gnuwin32's jauh lebih ketinggalan zaman daripada unxutils (bahkan ketika unxutils dianggap dengan 'unxupdates').

The http://unxutils.sourceforge.net/ unxutils.zip situs turun tetapi tersedia https://archive.org/details/UnxUtils dan secara resmi https://sourceforge.net/projects/unxutils/ dan jika Anda akan mendapatkannya kemudian unduh undxupdates juga

Membandingkan gnuwin32 dengan unxutils, umumnya melihat ke Gnuwin32, tetapi tahu bahwa unxutils memiliki beberapa kelebihan .. Gnuwin32 memiliki hampir semua perintah yang dimiliki unxutils, plus lebih banyak lagi.

Dan juga, lihat ke Cygwin, ia memiliki banyak koleksi utilitas yang jauh lebih mutakhir daripada gnuwin32, (mereka harus dijalankan dari bash shell cygwin, yang menurut saya baik-baik saja), Anda biasanya tidak perlu melihat sesuatu yang kuno dan tidak diperbarui seperti unxutils, meskipun memang memiliki pclip dan gclip.

selain gnuwin32 dan unxutils, ada juga MinGW dan cygwin dan Windows SUA (yang saat penulisan, MS masih mempertahankan dan akan diperbarui) dan GOW (yang kecil, meskipun halaman gowub GOW menunjukkannya sebagai yang terakhir diperbarui 2014) dan lebih kecil lagi, BusyBox (terkenal dengan android tetapi tersedia untuk Windows, di sini dan masih sangat kecil. Dua fitur yang paling mengesankan bagi saya adalah gnuwin32 dan cygwin (dan cygwin memiliki xxd dan tail -f yang berfungsi, jadi saya tidak perlu menggunakan unxutils) Dengan cygwin, program harus benar-benar dijalankan dari shell cygwin tetapi dengan linux shell misalnya bash shell dan bash dan shell linux lainnya sangat kuat sehingga tidak ada kerugian di sana. Juga ingat bahwa saat ini banyak orang menggunakan mesin virtual linux daripada cygwin atau gnuwin32, yang benar-benar mendapatkan versi terbaru dari perintah, daripada port windows yang bisa lebih tua dan dapat berperilaku berbeda dengan tanda kutip.

Catatan ditambahkan-coreutils alias gnu coreutils, adalah sekelompok perintah yang berjalan di linux (..), dan tidak diragukan lagi OS GNU dengan Herd (OS yang kurang banyak digunakan!), dan mungkin memiliki beberapa implementasi yang layak dilakukan untuk OS * nix lainnya. GNU Coreutils terkenal dan sangat banyak digunakan serta bermanfaat dan diperbarui. Di sisi lain, unxutils adalah implementasi / port yang sangat lama dari beberapa perintah yang digunakan orang di linux atau unix, (yang tidak diragukan lagi termasuk beberapa perintah coreutils), yang dilakukan untuk OS windows. Keduanya bahkan biasanya tidak disebutkan dalam kalimat yang sama dan satu-satunya alasan mengapa mereka ada dalam pertanyaan awal, adalah karena beberapa kebingungan dalam pertanyaan awal. GnuWin32 memang memiliki implementasi coreutils untuk Windows, yang disebut Gnuwin32 coreutils, meskipun seperti yang disebutkan, Gnuwin32 sudah tua / tidak diperbarui, hanya saja tidak setua / tidak diperbarui, seperti unxutils.

barlop
sumber
3
selain gnuwin32 dan unxutils, ada juga MinGW dan cygwin dan Windows SUA dan GOW. Dua yang paling mengesankan bagi saya adalah gnuwin32 dan cygwin (dan cygwin memiliki xxd dan tail yang berfungsi -f. Jadi saya tidak perlu menggunakan unxutils) Dengan cygwin, program harus benar-benar dijalankan dari cangkang cygwin tetapi cangkangnya linux mis. bash shell dan bash dan shell linux lainnya sangat kuat sehingga tidak ada kerugian di sana.
barlop
salah satu kelebihan unxutils yang masih bertahan adalah ia memiliki pclipperintah untuk menempelkan isi clipboard.
barlop
juga mungkin bagus untuk memiliki * nix VM yang diatur dan terintegrasi dengan baik sehingga mereka dapat saling membaca / menulis, maka Anda dapat memiliki perintah * nix terbaru dan
barlop
6

Unxutils adalah windows asli, dan tidak memiliki dependancies - tetapi belum diperbarui dalam beberapa saat, dan merupakan subset dari coreutils. Anda memerlukan lingkungan gaya * nix untuk coreutils, jadi Anda harus menjalankannya di cygwin atau serupa

Journeyman Geek
sumber
3
Pemasang untuk coreutils untuk windows harus menangani semua dependensi gnuwin32.sourceforge.net/packages/coreutils.htm
Nifle
1
unxutils secara teknis bukan subset dari coreutils. selain versi perintah. unxutils memiliki xxd yang coreutils dan bahkan gnuwin32 tidak miliki. Juga pada saat penulisan, gnuwin32 memiliki tail yang rusak -f, tetapi tail.exe yang unxutils berfungsi dengan baik. sourceforge.net/p/gnuwin32/bugs/242 Juga gnuwin32 memiliki coreutils sendiri gnuwin32.sourceforge.net/packages/coreutils.htm
barlop
2
UnxUtils bekerja dengan baik di baris perintah Windows biasa, tidak perlu untuk Cygwin (yang mungkin muncul dengan utilitas baris perintah Unix sendiri, sih).
PhiLho
1
@Baiklah, ya tapi tetap saja yang unxutils tidak memiliki dependensi dan [saya akan menambahkan bahwa cara installer berurusan dengan itu adalah] EXE gnuwin32 harus dijalankan di direktori yang sama dengan berapa pun beberapa DLL yang mereka andalkan, jadi Penginstal menempatkan satu set file DLL di direktori bin.
barlop
1
Anda menulis "Anda memerlukan lingkungan gaya * nix untuk coreutils, jadi Anda harus menjalankannya di cygwin atau serupa" <- Tidak yakin apa yang Anda maksud. Unxutils berjalan di lingkungan windows, tanpa shell * nix. Dan mereka memiliki hal-hal yang tidak ada di coreutils seperti wget dan xxd sehingga mereka bukan subset dari coreutils. Juga, bahkan perintah cygwin secara teknis dapat dijalankan langsung dari cmd, di luar cygwin.
barlop