`ค้นหา 'พฤติกรรมที่ผิดปกติ - ทำไม?


9

locate "*.png"ส่งคืนไฟล์ทั้งหมดที่ลงท้ายด้วย.pngตามที่คาดไว้

locate "test.*"ไม่ส่งคืนสิ่งใด แต่มีไฟล์ชื่อtestในระบบของฉัน

locate "*test"ส่งคืนไฟล์ทั้งหมดที่ลงท้ายด้วยtestตามที่คาดไว้

locate "test*"ไม่ส่งคืนสิ่งใด แต่มีไฟล์ที่เริ่มต้นด้วยtestในระบบของฉัน

เหตุใดสัญลักษณ์แทนจึงทำงานได้เฉพาะเมื่อ "ลงท้ายด้วย" เท่านั้น


1
คุณสร้างที่อยู่ใหม่หลังจากสร้างไฟล์ที่ตรงกับtest*และtest.*?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams: ใช่
Vittorio Romeo

คำตอบ:


12

locate "test.*" ไม่ส่งคืนสิ่งใด แต่มีไฟล์ชื่อ test ในระบบของฉัน

.จะถือว่าเป็นจุดที่ไม่เป็นใน regex เป็นตัวอักษรโดยพลการจึงtest.*ไม่ตรงแต่testtest.foo

locate "test*"ไม่ส่งคืนสิ่งใด แต่มีไฟล์ที่เริ่มต้นด้วยtestในระบบของฉัน

ค้นหาร้านค้าเส้นทางแบบเต็มไปยังแฟ้มlocate "*/test*"เพื่อที่จะหาไฟล์ที่เริ่มต้นด้วยการทดสอบคุณควรใช้

จุดสุดท้ายอาจจะทำให้เกิดความสับสนเป็นlocate fooสิ่งที่พบรวมทั้งเพื่อให้รูปแบบที่ได้รับการตีความว่าเป็นfoo *foo*ดูเหมือนว่ารูปแบบไม่ได้อยู่ในดาวหากมีสัญลักษณ์ตัวแทนอยู่ในรูปแบบแล้ว

ข้อจำกัดความรับผิดชอบ : ฉันทำการทดสอบบางอย่างและนี่คือข้อสรุปของฉันฉันไม่สามารถพิสูจน์ได้โดยการอ้างถึงหน้าคนซึ่งดูเหมือนพื้นฐานมาก


3
ในman locateฉันมี: ถ้า --regex ไม่ได้ระบุรูปแบบสามารถมีตัวละครกลม หากรูปแบบใด ๆ ไม่มีตัวอักษรแบบกลมให้ค้นหาตัวอักษรเหมือนกับรูปแบบ * แบบ *
gniourf_gniourf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.