मैं कॉलेज में हूं और मुझे अपने सीएस होमवर्क को एक स्कूल लिनक्स मशीन से सबमिट करना है, लेकिन मुझे अपने लैपटॉप (मैक) पर होमवर्क करना पसंद है। इसलिए हर समय के साथ मेरी फ़ाइलों की प्रतिलिपि, फिर उन्हें जमा करने के बजाय, मैं मेरे प्रयोग करने के लिए यह करने के लिए एक स्क्रिप्ट बनाने का फैसला किया scp
और ssh
। जब मैंने पहली बार अपनी स्क्रिप्ट का परीक्षण किया, तो scp
कमांड ने hw3
दूसरी मशीन पर निर्देशिका बनाई । अगली बार जब मैंने इसका परीक्षण किया, तो इसने निर्देशिका बनाई hw4
। दोनों निर्देशिकाओं में मेरी प्रोग्राम फाइलें थीं। चूंकि दोनों निर्देशिकाएं केवल परीक्षण के लिए बनाई गई थीं, इसलिए मैंने दोनों का उपयोग करके उन्हें हटा दिया rm -r
। लेकिन यहाँ वह जगह है जहाँ समस्या पैदा होती है।
बाद में अपनी स्क्रिप्ट और अन्य डीबगिंग के परीक्षण के माध्यम से, मैंने पाया कि मैं अब किसी भी फाइल या फ़ोल्डर को hw3 या hw4 नाम से नहीं बना सकता, जबकि दूसरी मशीन से जुड़ा हुआ है ssh
। मैं कुछ और नाम का फोल्डर बना सकता हूं, बस hw3
या नहीं hw4
। मैं उन्हें के माध्यम से नहीं कर सकते हैं mkdir
, mv
, cp
, या स्पर्श, जिससे मुझे लगता है कि फाइल सिस्टम के साथ कुछ गलत है। हालांकि, मैं मूल निर्देशिका में बना सकता हूं hw3
और hw4
फाइल कर सकता हूं । किसी ने भी मुझसे यह जानने के लिए बात नहीं की कि यह क्या है और इसे पहले कभी नहीं देखा है, और इस मुद्दे को गूग्लिंग ने कोई परिणाम नहीं दिया है।
मेरे स्कूल में कई अलग-अलग मशीनें हैं जिन पर मैं लॉग इन कर सकता हूं और मैंने कई कोशिश की, लेकिन समस्या उन सभी पर बनी रहती है, जो समझ में आता है क्योंकि मैं एक नेटवर्क ड्राइव (पथ में SDRIVE) से काम कर रहा हूं। स्क्रिप्ट को काम करने के लिए, मैंने hww#
इसके बजाय इसे बनाने के वर्कअराउंड का उपयोग किया hw#
, लेकिन मैं वास्तव में जानना चाहूंगा कि क्या चल रहा है और इसे कैसे ठीक किया जाए।
जब मैं लॉग ऑन करता ssh
हूं और मेरे कमांड से यह मेरा टर्मिनल आउटपुट है ।
Last login: Tue Mar 3 11:40:18 2015 from r03ane3md.device.mst.edu
You are currenly one of 7 users on this host!
ane3md@rc07xcs213:~$ cd SDRIVE/cs1510
ane3md@rc07xcs213:~/SDRIVE/cs1510$ ls -l
total 0
drwxr-xr-x 2 ane3md mst_users 0 Mar 3 12:01 hw1
drwxr-xr-x 2 ane3md mst_users 0 Feb 21 21:37 hw2
drwxr-xr-x 2 ane3md mst_users 0 Mar 3 11:59 hww3
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mkdir hw3
mkdir: cannot create directory ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ touch hw3
touch: cannot touch ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mv hww3 hw3
mv: failed to access ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$
संपादित करें: जैसा कि अनुरोध किया गया है, "स्टेट -f ~ / SDRIVE" रनिंग निम्न आउटपुट करता है:
ane3md@rc07xcs213:~$ stat -f ~/SDRIVE
File: "/usr/local/home/ane3md/SDRIVE"
ID: 0 Namelen: 4096 Type: fuseblk
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 0 Free: 0 Available: 0
Inodes: Total: 314572031 Free: 66717154
EDIT - WORKAROUND: मैंने कुछ स्नूपिंग किया, और मैंने पाया कि हमारा स्कूल विंडोज़ और यूनिक्स / लिनक्स फाइल सिस्टम को जोड़ने के लिए dfshack (आप इसे github पर गूगल कर सकते हैं) का उपयोग करता है, और यहाँ एक छात्र द्वारा बनाया गया था, इसलिए स्वाभाविक रूप से, इसमें कीड़े हैं। जाहिर है मुझे उनमें से एक मिला। मैंने कुछ और परीक्षण भी किए, और पाया कि निम्नलिखित प्रक्रियाएँ मुझे फिर से निर्देशिका बनाने की अनुमति देने के लिए काम करती हैं। मेरे पास एक मैक है, इसलिए मुझे यकीन नहीं है कि यह विंडोज के लिए काम करेगा।
- मैक ओएस पर नेटवर्क ड्राइव को मैप करें ताकि आप इसे फाइंडर के जरिए एक्सेस कर सकें
- खोजक के माध्यम से बनाएँ निर्देशिका जो पहले नहीं बनाई जा सकी।
- Ssh के माध्यम से दूरस्थ मशीन से कनेक्ट करें और उस निर्देशिका पर नेविगेट करें जहां आप फ़ोल्डर या फ़ाइलें नहीं बना सकते।
- प्रकार
mv dirCreatedViaFinder newName
- अब आप निर्देशिकाएं और फाइलें बना सकते हैं, जिनका नाम पहले नहीं बनाया जा सकता था, लेकिन एक खामी है। यदि आप
rm -r newName
, अब आपnewName
फ़ाइलें और फ़ोल्डर्स नहीं बना सकते । इसलिए मुझे लगता है कि पूरा मुद्दा निर्देशिकाओं को हटाने के कारण होता है।