คำสั่ง find ดูเหมือนจะไม่ทำงานใน cygwin


10

เมื่อพยายามเรียกใช้คำสั่งค้นหาใน cygwin ฉันจะได้รับข้อผิดพลาด

"FIND: รูปแบบพารามิเตอร์ไม่ถูกต้อง"

อย่างไรก็ตามคำสั่งเดียวกันรันบน linux เกิดอะไรขึ้น?

คำตอบ:


13

คุณกำลังใช้คำสั่ง Windows find ไม่ใช่ cygwin

สิ่งนี้ชัดเจนถ้าคุณพิมพ์ 'ค้นหา'

หากต้องการแก้ไขให้แก้ไขเส้นทางของคุณ (คุณสมบัติของระบบ -> ขั้นสูง -> ตัวแปรสภาพแวดล้อม -> ตัวแปรของระบบ -> เส้นทาง) และย้ายรายการสำหรับ cygwin ไปยังด้านหน้าของเส้นทาง (วิธีง่ายๆในการทำเช่นนี้คือการคัดลอกพา ธ ทั้งหมดวางลงใน Notepad แก้ไขที่นั่นแล้ววางกลับ)

ตามที่ระบุไว้ในความคิดเห็นเส้นทางอื่นคือการแก้ไขสคริปต์เริ่มต้น bash และเปลี่ยนเส้นทางที่นั่น ฉันยังบอกว่านี่เป็นวิธีแก้ปัญหาที่แนะนำเพราะตอนนี้ฉันพบกรณีที่มีรุ่น cygwins แรกทำให้เกิดปัญหา


5
นี่อาจไม่ใช่การแก้ไขในอุดมคติ อีกทางเลือกหนึ่งคือแก้ไขไฟล์เริ่มต้นbashเพื่อเพิ่มเส้นทาง Cygwin ไปยังเส้นทางของระบบแทนการต่อท้าย ความแตกต่างที่สำคัญคือคุณต้องการให้พบ Cygwin รุ่นก่อนหรือไม่เมื่อใช้คำสั่งใน Windows CMD มาตรฐานหรือเชลล์ Explorer
ต้มตุ๋น quixote

cygwin กำลังเตรียมเส้นทางของตัวเองไปสู่เส้นทางระดับโลก ดังนั้นมันค่อนข้างแปลก OP ได้รับข้อผิดพลาดนั้น
akira

จุดที่ดีนักต้มตุ๋น!
dggoldst

2

ฉันไม่สามารถรับ 'find' ที่ถูกต้องให้ทำงานเมื่ออยู่ในเชลล์คำสั่งของ windows และการปรับแต่ง PATH ไม่ช่วย แต่สิ่งนี้ได้ผล:

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

เส้นทางที่ชัดเจนทำให้เกิด 'การค้นหา' ที่ถูกต้องและไม่ว่าด้วยเหตุผลใดก็ตามจะทำงานได้ก็ต่อเมื่อทำงานด้วยการทุบตีเท่านั้น


สิ่งนี้ใช้ได้ผลดีที่สุดสำหรับฉัน ฉันกำลังเขียนสคริปต์ที่สามารถทำงานกับเครื่องต่างๆที่มีทุบตีอยู่แล้ว บางคนมีเส้นทางทุบตีก่อน \ Windows \ System32 แต่บางคนก็มีเส้นทางหลังจาก นอกจากนี้คำสั่ง windows "ค้นหา" จะแสดงทั้งหมด "ค้นหา" ในลำดับเส้นทาง
PseudoNoise
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.