perintah find sepertinya tidak berfungsi di cygwin

10

Ketika mencoba menjalankan menemukan perintah di cygwin, saya terus mendapatkan kesalahan

"CARI: Format parameter tidak benar"

Namun, perintah yang sama dijalankan di linux. Apa yang sedang terjadi?

dggoldst
sumber

Jawaban:

13

Anda menggunakan perintah Windows find, bukan cygwin.

Ini dibuat jelas jika Anda mengetik 'yang menemukan'

Untuk memperbaikinya, edit path Anda (System Properties -> Advanced -> Variabel Lingkungan -> Variabel Sistem -> Path) dan pindahkan entri untuk cygwin ke depan path. (Cara mudah untuk melakukan ini adalah menyalin seluruh jalur, tempel ke dalam Notepad, edit di sana, dan tempel kembali).

Seperti yang ditunjukkan dalam komentar, rute lain adalah mengedit skrip startup bash dan mengubah jalur di sana. Saya bahkan akan mengatakan ini adalah solusi yang lebih disukai karena saya sekarang telah menemukan sebuah kasus di mana memiliki versi cygwin pertama kali menyebabkan masalah.

dggoldst
sumber
5
ini mungkin bukan perbaikan yang ideal; alternatifnya adalah mengedit file startup bash untuk menambahkan path Cygwin ke path sistem alih-alih menambahkannya. perbedaan utama adalah apakah Anda ingin versi Cygwin ditemukan pertama kali ketika menjalankan perintah di shell Windows CMD atau Explorer standar.
quack quixote
cygwin sedang mengawali jalannya sendiri ke jalur global. jadi OP yang cukup aneh mendapatkan kesalahan itu.
akira
Poin bagus dukun!
dggoldst
2

Saya tidak bisa mendapatkan 'find' yang benar untuk dijalankan ketika di shell perintah windows, dan tweaking PATH tidak membantu. Tetapi ini berhasil:

bash
/usr/bin/find . -iname blahblah*
exit

Jalur eksplisit meluncurkan 'temukan' yang tepat, dan untuk alasan apa pun, hanya berfungsi ketika berjalan di bash.

DarW
sumber
Ini bekerja paling baik untuk saya. Saya sedang membuat skrip yang dapat berjalan di berbagai mesin yang sudah memiliki bash. Beberapa memiliki jalur bash sebelum \ Windows \ System32, tetapi beberapa memilikinya setelah. Juga, perintah windows "where find" akan menampilkan semua "find" dalam urutan path.
PseudoNoise