ตู้ปลา:“ shopt -s dotglob” อนาล็อก


9

ฉันพยายามที่จะโยกย้ายจากไปbashfish

คืออะไรfish's อนาล็อกเพื่อshopt? ฉันพยายามเลียนแบบบรรทัดนี้จาก.bashrc:

shopt -s dotglob # for mv * see hidden files

ค่อนข้างแน่ใจว่าไม่มีใคร เอกสารพูดคุยเกี่ยวกับไฟล์ dot ที่ไม่ได้รวมอยู่ด้วยไม่พูดถึงเกี่ยวกับกลไกการกำหนดค่าใด ๆ คุณอาจจะต้องตกหลุมรักด้วย{,.}*ตนเอง
เกล็

1
หมายเหตุคุณอาจต้องการถาม stackoverflow.com ซึ่งเป็นผู้ดูแลปลาบางคนออกไปเที่ยวที่นั่น
เกล็

คำตอบ:


8

นี่คือเจตนา เวลาส่วนใหญ่ที่ผู้ใช้ไม่ต้องการจับคู่ไฟล์ที่ซ่อนซึ่งไม่สามารถมองเห็นได้lsโดยไม่-aตั้งใจ โดยปกติไฟล์จะถูกซ่อนไว้ด้วยเหตุผลไม่ใช่เพื่อหมุนรอบคุณ นอกจากนี้หาก*จับคู่ไฟล์ที่ซ่อนอยู่การจับคู่ไฟล์ที่ไม่ได้ซ่อนไว้นั้นจะยุ่งยากเกินไป

อย่างไรก็ตามshopt -s dotglobไม่จำเป็นต้องใช้bash ซึ่งแตกต่างจากไฟล์ที่ถูกซ่อน ในทุบตีshopt -s dotglobเป็นวิธีเดียวของการจับคู่ไฟล์ในไดเรกทอรีทุกโดยไม่ตั้งใจจับคู่หรือ. ..อย่างไรก็ตามเปลือกปลาไม่สามารถจับคู่.หรือ..กลมกลืนได้ดังนั้นจึงไม่ใช่ปัญหา (หากคุณต้องการจับคู่อย่างจริงจัง.หรือ..ด้วยเหตุผลโง่ ๆ เพียงพูดอย่างชัดเจน) dotglobนอกจากนี้ปลาพยายามที่จะหลีกเลี่ยงตัวเลือกโดยการออกแบบเพื่อให้มันไม่ได้มี

เพื่อให้ตรงกับไฟล์ทุกไฟล์ในไดเรกทอรีคุณอาจต้องการใช้ส่วนขยายของวงเล็บเพื่อตรวจจับไฟล์ที่ขึ้นต้นด้วยจุดและไฟล์ที่ไม่ใช่ {.,}เป็นการขยายส่วนรองรับซึ่งตรงกับจุดที่อาจมีหรือไม่มีอยู่ ดาวหลังจากที่มันจับคู่ทุกอย่าง เนื่องจาก globs ในปลาไม่สามารถจับคู่.หรือ..รหัสต่อไปนี้ตรงกับทุกสิ่งยกเว้นทั้งสองไดเรกทอรี (ซึ่งทุบตีน่าเศร้าตรงถ้าคุณใช้รหัสด้านล่าง)

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