ไวยากรณ์ของ ls --hide = และ ls --ignore =


17

ls --hideและls --ignoreให้ความเป็นไปได้ที่จะปล่อยไฟล์ที่กำหนดไว้ผ่านการแสดงออกปกติที่กำหนดไว้หลังจาก--ignore=ส่วนหนึ่ง -a, -Aทำให้หลังแน่ใจว่าตัวเลือกนี้ไม่ปิดทาง คำสั่งmanและinfoหน้าพูดถึงนิพจน์ปกติ

คำถาม : ซึ่งสัญลักษณ์หรือนิพจน์ปกติได้รับการสนับสนุนในและls --hide=ls --ignore=

ฉันพบว่า* $ ?ดูเหมือนจะได้รับการสนับสนุนเช่นเดียวกับ POSIX Bracket Expressions แต่ดูเหมือนว่ามันจะไม่ทำงานอย่างถูกต้องตลอดเวลาและเป็นเกมแห่งการลองผิดลองถูกสำหรับฉัน ฉันคิดถึงสิ่งที่สำคัญที่นี่หรือไม่?


2
เกี่ยวข้อง: unix.stackexchange.com/questions/26900/…
slm

ค่อนข้างเกี่ยวข้องกัน แต่คำถามนี้เกี่ยวกับเฉพาะ--ignoreในขณะที่คำถามที่คุณอ้างถึงเป็นเรื่องเกี่ยวกับ emacs และ--ignoreถูกกล่าวถึงเมื่อผ่านคำตอบเท่านั้น
บาฮามาต

คำตอบ:


13

จากคู่มือ :

-I pattern, --ignore=pattern

ในไดเรกทอรีละเว้นไฟล์ที่มีชื่อตรงกับรูปแบบเชลล์ (ไม่ใช่นิพจน์ทั่วไป) เช่นเดียวกับในเชลล์ชื่อเริ่มต้น.ในชื่อไฟล์ไม่ตรงกับสัญลักษณ์แทนที่ที่จุดเริ่มต้นของรูปแบบ บางครั้งมันมีประโยชน์ที่จะให้ตัวเลือกนี้หลายครั้ง ตัวอย่างเช่น,

     $ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'

ตัวเลือกแรกละเว้นชื่อของความยาว 3 หรือมากกว่าที่เริ่มต้นด้วย.การละเว้นสองชื่อทั้งหมดสองตัวอักษรที่ขึ้นต้นด้วย.ยกเว้นและคนที่สามชื่อละเว้นที่เริ่มต้นด้วย..#

คุณสามารถใช้รูปแบบเชลล์แบบกลมได้: *จับคู่กับจำนวนอักขระ?ใด ๆ จับคู่ตัวละครตัวใดตัวหนึ่ง[…]จับคู่ตัวละครในวงเล็บและใส่\เครื่องหมายตัวอักษรถัดไป ตัวละคร$ย่อมาจากตัวมันเอง (ตรวจสอบให้แน่ใจว่ามันอยู่ในเครื่องหมายคำพูดเดี่ยวหรือนำหน้าด้วย\เพื่อปกป้องมันจากการขยายตัวของเชลล์)


0

มันใช้รูปแบบรูปแบบ regex POSIX.2 ดูre_format(7)หน้าคนสำหรับรายละเอียดเฉพาะ


นี่คือสิ่งที่ฉันหมายกับ POSIX Bracket แสดงออกว่า :)
erch

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