ฉันจะปรับแต่งระบบความสมบูรณ์ของ zsh เพื่อให้ไฟล์ "ปลอม" สมบูรณ์ในบางสถานการณ์ได้อย่างไร
แม่นยำยิ่งขึ้นระบบไฟล์AVFSทำให้ไฟล์เก็บถาวรเป็นไดเรกทอรีโดยการสร้าง "ไดเรกทอรีปลอม" ถัดจากไฟล์เก็บถาวร โดยค่าเริ่มต้นมันทำซ้ำลำดับชั้นของไดเรกทอรีทั้งหมดภายใต้จุดเชื่อมต่อของ~/.avfs
มัน นอกจากนี้ภายใต้~/.avfs
สำหรับทุกไฟล์เก็บถาวรเช่น/tmp/foo.zip
นอกเหนือจากไฟล์เก็บถาวรตัวเอง~/.avfs/tmp/foo.zip
มีไดเรกทอรีที่เรียกว่า~/.avfs/tmp/foo.zip#
ซึ่งแสดงเนื้อหาของไฟล์เก็บถาวร อย่างไรก็ตามไดเรกทอรีพิเศษนี้ไม่ปรากฏในรายชื่อของ~/.avfs/tmp
: มันมีอยู่เฉพาะเมื่อมีการร้องขออย่างชัดเจน (สิ่งนี้คล้ายกับการทำงานของเคาน์เตอร์อัตโนมัติ)
mountavfs
cd ~/.avfs/tmp/foo.zip\#
เมื่อฉันพิมพ์คำสั่งเหมือนคำสั่งด้านบนfoo.zip#
จะไม่ปรากฏเป็นความสำเร็จที่สมบูรณ์~/.avfs/tmp/
เนื่องจากไม่มีไดเรกทอรีดังกล่าว วิธีที่ฉันสามารถบอก zsh ว่าเมื่อใดก็ตามที่มีไฟล์ที่มีเส้นทางแบบเต็ม$arc
แมตช์~/.avfs/**/*.(tgz|zip)
¹ก็ควรทำเป็นว่ามีไดเรกทอรีที่เรียกว่า${arc}#
?
(โปรดทราบว่าฉันต้องการความสมบูรณ์ในการทำงานกับการเรียกทุกครั้ง_files
หรือ_dirs
ไม่ใช่เฉพาะสำหรับcd
คำสั่งฉันไม่ต้องการให้ทำซ้ำรหัสของ_files
ฟังก์ชันหากเป็นไปได้)
¹ และส่วนที่เหลือทั้งหมดของส่วนขยาย
/path/to/foo
~/.avfs/path/to/foo
avfs
นี้อาจได้รับการแก้ไขได้ง่ายขึ้นใน หากมันแสดง#
รายการไดเรกทอรีเริ่มต้นสำหรับไฟล์ใด ๆ ที่ตรงกับสตริงที่รองรับหรือแม้กระทั่งการทดสอบมายากลไฟล์ในไดเรกทอรีสำหรับสิ่งที่จำเป็นต้องมี#
รายการแล้วเสร็จก็จะทำงาน ฉันเดาว่าจะมีผลงานบางอย่างที่เหมือนกับfind
ตอนนี้มันจะสืบค้นผ่านไฟล์ที่ถูกบีบอัด