Saya menggunakan cygwin di mesin windows saya. Saya mencoba mencari dan memberikan format parameter yang tidak benar. Mengapa demikian?
$ ls
bootstrap.jar
catalina-tasks.xml
catalina.bat
catalina.sh
commons-daemon-native.tar.gz
commons-daemon.jar
cpappend.bat
digest.bat
digest.sh
setclasspath.bat
setclasspath.sh
shutdown.bat
shutdown.sh
startup.bat
startup.sh
tomcat-juli.jar
tomcat-native.tar.gz
tool-wrapper.bat
tool-wrapper.sh
version.bat
version.sh
$ find . -name "version.sh"
FIND: Parameter format not correct
- Haruskah saya menginstal sesuatu saat menginstal cygwin atau saya melakukan sesuatu yang salah?
/usr/bin/find
bukannyafind
/usr/bin
di jalan, saya kira shell menggunakan yang pertama kalifind
ditemukan di $ PATH, yang merupakan sistem. Saya hendak menghapusnya (karena saya toh tidak membutuhkannya) , tetapi saya kira beberapa skrip sistem acak mungkin mengharapkan hal inifind
. Jadi, memperbaiki ini dengan cara yang benar adalah dengan menulis aliasalias find="/usr/bin/find"
ke~/.bashrc
(atau shell apa pun yang Anda gunakan) .Apakah sudah terpasang? Apa yang dikembalikan "yang menemukan"? Ingatlah bahwa Windows memiliki baris perintah bawaan yang menemukan bahwa Cygwin akan menggunakan jika menemukan sendiri adalah mia.
sumber
Jawaban dari Gilles benar karena versi Windows dari
find
perintah tersebut diberikan sebelum versi cygwin, dan itulah yang disebut.Meletakkan Cygwin di depan akan berarti bahwa setiap file batch yang menggunakan
find
perintah windows sekarang sebenarnya akan memanggilfind
perintah cygwin , yang mungkin bukan yang Anda inginkan.Cara yang paling simbiotik bagi keduanya untuk bekerja, menurut saya, adalah melakukan hal berikut:
find
perintah cygwin dan ganti nama / salin kelfind.exe
(atau nama lain yang tidak ada di jendela PATH)~/.bashrc
file Anda tambahkan barisalias find=lfind
Dengan cara ini, ketika Anda menjalankan
find
dari terminal cygwin Anda akan menggunakan versi cygwin, tetapi file batch akan menggunakan versi windows.Catatan: Anda masih memerlukan direktori tempat penyimpanan cygwin di PATH Anda, tetapi sekarang bisa lebih jauh dari direktori sistem windows.
sumber
Saat Anda menginstal Cygwin, itu tidak menginstal semua paket yang mungkin kecuali Anda memintanya. Untuk menambahkan paket yang diinginkan, lihat penjelasannya di sini di Super User.
Atau cukup lakukan tindakan berikut:
sumber
Berikut adalah GNU-utils sebagai port win32 asli . Mereka tidak perlu cygwin untuk dijalankan, dan datang dengan shell (sh.exe), termasuk grep, sed, awk, find, less, cat, tac, dan banyak lagi.
Masalah dengan jalur Windows akan tetap ada, tetapi mungkin Anda mengganti nama find to
gfind
(gnu-find) atau menjadisearch
, agar lebih mudah diakses, dan tambahkan dir coreutils ke PATH Anda.sumber