क्यों sftp rmdir काम नहीं कर रहा है?


18

मैं अपने निजी सर्वर स्थान से बहुत सारी फ़ाइलों और फ़ोल्डरों के साथ एक निर्देशिका निकालने की कोशिश कर रहा हूं। मैं SFTP के माध्यम से लॉग इन कर रहा हूं; मैं पूरी निर्देशिका तक पहुँच सकता हूँ कोई समस्या नहीं; मैं भी rm के साथ अलग-अलग फ़ाइलों को हटा सकते हैं। लेकिन यह मुझे हमेशा के लिए ले जाएगा - इसलिए मैं वास्तव में उच्चतम फ़ोल्डर पर rmdir करना चाहूंगा जिसे मैं हटाना चाहता हूं। लेकिन जब मैं ऐसा करता हूं, मुझे मिलता है

निर्देशिका नहीं निकाल सका: असफलता

क्या मैं गलत कर सकता हूँ के रूप में किसी भी विचार?

बहुत बहुत धन्यवाद, सैम


यदि आप उस सर्वर में SFTP कर सकते हैं, तो क्या आप SSH कर सकते हैं? Rm- आरएफ foo / *: यदि हां, तो आप आर एम कमान की एक अधिक शक्तिशाली संस्करण का उपयोग कर सकते हैं
क्रिस

जवाबों:


21

मेरे अनुभव में, rmdir एक खाली निर्देशिका पर काम करना पसंद करता है। यदि आप निर्देशिका को हटाने की कोशिश कर रहे हैं foo, तो मैं करूंगा:

$rm foo/*
$rmdir foo

2
संपादित करें क्योंकि -rf ध्वज sftp में rm के लिए मौजूद नहीं है।
क्रिस

1
SSH'ing rm -rf करना स्पष्ट उत्तर था। मैंने SFTP पर rm -rf की कोशिश की, लेकिन यह स्वीकार नहीं कर सका, जैसा कि आपने बताया। (SFTP में वाइल्डकार्ड चाल काम नहीं किया।) फिर भी, आपकी मदद के लिए एक गुच्छा धन्यवाद!
user1451632

अजीब बात है। rm foo / * ने मेरे लिए SFTP में काम किया। वैसे भी, मुझे खुशी है कि आप इसे हल कर चुके हैं!
क्रिस

फिर भी यह निर्देशिकाओं को पुनरावर्ती रूप से नहीं निकालता है। यह पहले से ही काफी अच्छा है, लेकिन अभी तक सही नहीं है :-)
क्रिज़्सटॉफ Jabło

एक ही समस्या थी और rm foo/*काम नहीं कर रहा था क्योंकि foo/इसमें गैर-खाली निर्देशिकाएं थीं। सौभाग्य से rsyncभी अनुमति दी गई थी और मैंने स्थानीय रूप से एक खाली निर्देशिका बनाई थी और फिर rsync -rv --delete empty_local_dir/ host.example.org:/foo/दूरस्थ foo/निर्देशिका के नीचे की सभी चीजों को हटा दिया था । बाद में यह rmdir fooSFTP के माध्यम से संभव था ।
ckujau

5

आपने निर्दिष्ट नहीं किया है कि आप किस SFTP ग्राहक का उपयोग कर रहे हैं। इसलिए मैं ओपनएसएसएच एसएफटीपी ( sftp) मान रहा हूं ।

rmdirOpenSSH SFTP क्लाइंट मैप्स में कमांड सीधे SSH_FXP_RMDIRSFTP प्रोटोकॉल रिक्वेस्ट पर। संस्करण 3 (ओपनएसएसएच द्वारा प्रयुक्त एक) के लिए एसएफटीपी कल्पना निर्दिष्ट करती है कि SSH_FXP_RMDIRऑपरेशन विफल हो सकता है, "यदि निर्दिष्ट निर्देशिका खाली नहीं है" (हालांकि यह इसे अनिवार्य नहीं लगता है)।

यदि निर्देशिका में उपनिर्देशिका नहीं है, तो आप rm foo/*पहले निर्देशिका की सभी फ़ाइलों को हटाने के लिए (OpenSSH SFTP कमांड का उपयोग कर सकते हैं , शेल कमांड नहीं)। और फिर उपयोग करें rmdir


1
एक क्लासिक सवाल है: आप rm -r *एसएफटीपी के साथ कैसे करते हैं । मुझे नहीं लगता कि यह संभव है।
जरी तुर्किया

2
@JariTurkia यह sftp(OpenSSH कमांड-लाइन क्लाइंट) के साथ संभव नहीं है । यदि आपके पास स्मार्ट-पर्याप्त क्लाइंट है, तो यह SFTP (प्रोटोकॉल) के साथ संभव है।
मार्टिन प्रिक्रील

मैं स्मार्ट-पर्याप्त SFTP- क्लाइंट के लिए किसी भी सुझाव की सराहना करूंगा। एक विशेष बॉक्स है, जिसे मुझे नियमित रूप से टिंकर करने की आवश्यकता है और सुरक्षा कारणों से एसएफटीपी तक ही सीमित है। जाहिर है, कुछ भी करते समय यह बहुत दर्दनाक हो जाता है, कमांड के सीमित सेट को ओपनएसएसएच के एसएफटीपी-क्लाइंट ऑफ़र प्रदान करता है।
जरी तुर्किया

अपनी विशिष्ट समस्या के बारे में एक प्रश्न पूछें ( "SFTP का उपयोग करके फ़ोल्डर को पुन: कैसे हटाएं" ) - सुनिश्चित करें कि आप अपना मंच निर्दिष्ट करते हैं।
मार्टिन प्रिक्रील
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.