कुछ परिस्थितियों में "नकली" फ़ाइलों को पूरा करने के लिए मैं 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
, समारोह यदि संभव हो तो।)
Rest और बाकी सभी एक्सटेंशन
/path/to/foo
दिखाई दे रहा है ~/.avfs/path/to/foo
।
avfs
। यदि यह #
किसी भी फाइल के लिए डिफ़ॉल्ट निर्देशिका प्रविष्टि प्रस्तुत करता है जो उसके द्वारा समर्थित तार से मेल खाती है, या यहां तक कि जादू ने एक निर्देशिका में फाइलों का परीक्षण किया है जिसके लिए एक #
प्रविष्टि की आवश्यकता है, तो पूर्णता सिर्फ काम करेगी। मुझे लगता है कि कुछ के लिए एक प्रदर्शन हिट होगा जैसे find
कि यह अब संपीड़ित फ़ाइलों के माध्यम से होगा।