क्षमा करें, यदि इसका उत्तर कहीं और है, तो मुझे नहीं पता कि मुझे अपनी समस्या की खोज कैसे करनी है।
मैं redhat linux HPC सर्वर पर कुछ सिमुलेशन चला रहा था, और आउटपुट को बचाने के लिए फ़ोल्डर संरचना को संभालने के लिए मेरा कोड एक दुर्भाग्यपूर्ण बग था। फ़ोल्डर बनाने के लिए मेरा matlab कोड था:
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
sp.run_number
पूर्णांक कहां था मैं इसे एक स्ट्रिंग में बदलना भूल गया, लेकिन किसी कारण से mkdir(folder);
(matlab में) चल रहा था। वास्तव में, सिमुलेशन एक अड़चन के बिना चला गया, और डेटा मिलान निर्देशिका में सहेजा गया।
अब, जब फ़ोल्डर संरचना को क्वेर / प्रिंट किया जाता है, तो मुझे निम्नलिखित परिस्थितियां मिलती हैं:
- जब मैं स्वतः पूर्ण करने का प्रयास करता हूं:
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/
- जब मैं का उपयोग करें
ls
:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?
। - जब मैं rsync का उपयोग करके अपने मैक में स्थानांतरित करता हूं तो
--progress
विकल्प दिखाता है:run_\#003/
आदि (मैं मानता हूं) पूर्णांकsp.run_number
को तीन अंकों में गद्देदार से मेल खाता है , इसलिए 10 वां रन हैrun_\#010/
- जब मैं खोजक में फ़ोल्डर देखता हूं तो देखता हूं
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_?
- इस सवाल को देखते हुए और
ls | LC_ALL=C sed -n l
मुझे मिलने वाली कमांड का उपयोग करते हुए :
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
मैं cd
इनमें से किसी भी प्रतिनिधित्व का उपयोग करके फ़ोल्डर में प्रबंधन नहीं कर सकता ।
मेरे पास इन फ़ोल्डरों में से हजारों हैं, इसलिए मुझे इसे स्क्रिप्ट के साथ ठीक करना होगा। इनमें से कौन सा विकल्प फ़ोल्डर का सही प्रतिनिधित्व है? मैं प्रोग्रामेटिक रूप से इन फ़ोल्डरों को कैसे संदर्भित कर सकता हूं, इसलिए मैं उन्हें बैश स्क्रिप्ट का उपयोग करके ठीक से स्वरूपित नाम के साथ नाम बदल सकता हूं? और मैं जिज्ञासा के लिए अनुमान लगाता हूं कि यह नरक में कैसे हुआ?
run_
और मुझे कुछ टाइप करना होता है
/
। कोई अन्य वर्ण मान्य है, जिसमें नियंत्रण वर्ण शामिल हैं। मुझे नहीं पता कि अगर sp.run_number 0 था (तो या तो एक त्रुटि या उत्पादन के साथ गर्भपात हो सकता है run_
, क्योंकि NUL बाइट निर्देशिका नाम स्ट्रिंग को समाप्त कर देगी)। बेशक, यह 16-बिट (या उच्चतर) मानों के लिए भी समस्याग्रस्त होगा, जिनमें एनयूएल बाइट था, और मैटलैब चलाने वाले सिस्टम के एंडियन-नेस के अनुसार भी भिन्न होगा।
^A
शाब्दिक रूप से^
पालन नहीं किया जाता हैA
, लेकिन Ctrl-A (आप इसे Ctrl-V Ctrl-A का उपयोग करके टाइप कर सकते हैं क्योंकि Ctrl-A आम तौर पर शेल के लिए एक शॉर्टकट है)।