क्या मैं एफ़टीपी का उपयोग करके एक संपूर्ण फ़ोल्डर अपलोड कर सकता हूं?


29

मुझे एफ़टीपी का उपयोग करके एक पूर्ण फ़ोल्डर अपलोड करने की आवश्यकता है। क्या किसी फ़ोल्डर और उसकी सभी सामग्रियों को एक साथ स्थानांतरित करने का कोई विकल्प है?

जवाबों:


24

यदि आप एक मानक कमांड-लाइन ftp क्लाइंट का उपयोग कर रहे हैं, तो MPUTकमांड आपको शेल (शेल गोला-शैली) पैटर्न से मेल खाती सभी फ़ाइलों को स्थानांतरित करने की अनुमति देगा, इसलिए MPUT *वर्तमान निर्देशिका में सभी फाइलें भेजेगा। MGETएक पैटर्न से मेल खाती फ़ाइलों को पुनर्प्राप्त करने के लिए भी है।

डिफ़ॉल्ट रूप से, दोनों MPUTऔर MGETऐसा करने से पहले प्रत्येक फ़ाइल को स्थानांतरित करने के लिए संकेत देंगे। आप शायद "PROMPT" कमांड (कोई तर्क नहीं है; यह टॉगल है) के साथ संकेत देना बंद करना चाहते हैं।


यह प्रश्न मूल रूप से स्टैकओवरफ़्लो से आया था, इसलिए मुझे लगता है कि यह स्वीकृत उत्तर होना चाहिए। हालांकि मूल
पूछने

चेतावनी: FTP कमांड लाइन क्लाइंट जो विंडोज के साथ आता है वह निष्क्रिय मोड का समर्थन नहीं करता है इसलिए इस तकनीक का उपयोग करने से आपका समय बर्बाद हो सकता है। यह मेरे मामले में था क्योंकि मुझे फ़ाइलों को अपलोड करने की आवश्यकता थी और विंडोज कमांड लाइन w / स्थानीय रूप से स्थापित टूलिंग का उपयोग कर रहा था।
सीन 2078

1
यह सभी सादे फ़ाइलों को वर्तमान निर्देशिका में स्थानांतरित कर देगा लेकिन यह वर्तमान में मौजूद किसी भी निर्देशिका को स्थानांतरित नहीं करेगा। यह सिर्फ उन्हें चुपचाप नजरअंदाज कर देगा
bergercookie

22

आप ncftpput का उपयोग कर सकते हैं। निम्न कार्य करें:

  1. Ncftp स्थापित करें:

    yum install ncftp
    

यम लोअरकेस है।

वैकल्पिक रूप से:

    apt-get install ncftp

2. निम्नलिखित आदेश निष्पादित करें:

    ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*

यम को यम में बदल दिया जाना चाहिए - क्योंकि यह केस-संवेदी है।
ओलेकेह

1
यहाँ ncftpput के लिए सभी CLI विकल्प दिए गए हैं: ncftp.com/ncftp/doc/ncftpput.html
Pepijn Olivier

8

एफ़टीपी क्लाइंट का उपयोग करें जैसे कि लीचफ़टीपी या फ़ाइलज़िला या कुछ इसी तरह का। बहुत से लोग क्यूटफटीपी द्वारा कसम खाते हैं, लेकिन यह आखिरी है कि मैंने जाँच की। सभी समर्थन निर्देशिका संरचना सहित पूरे फ़ोल्डर को स्थानांतरित करते हैं।


1
FileZilla के लिए +1: filezilla-project.org/download.php?type=client
विलियम जैक्सन

5
  1. उपयोगकर्ता / ग्राहक फ़ोल्डर को ज़िप करें
  2. ज़िप फ़ाइल अपलोड करें
  3. फ़ोल्डर सर्वर पक्ष खोलना

नोट: मेरा जवाब StackOverflow में पोस्ट किया गया था। इसलिए यह "कोडिंग" समाधान का संदर्भ देता है।
चेस फ्लोरल

2

मेरे जैसे अन्य विंडोज के लिए एक सरल ट्यूटोरियल जो यहाँ हवा देता है:

संपूर्ण फ़ोल्डर अपलोड करने का सबसे आसान तरीका (सभी सबफ़ोल्डर्स और उन में फ़ाइलें) है:

  1. इस लिंक से एनसीएफटीपी क्लाइंट डाउनलोड करें (यह मुफ़्त है, लेकिन आप दान कर सकते हैं) ।
  2. सूची से Microsoft Windows के लिए NcFTP क्लाइंट 3.2.5 चुनें ।
  3. इसे स्थापित करो।
  4. जब किया जाता है, तो चेरी आइकन के साथ एक छोटा सीएमडी विंडो पॉप-अप होगा। आपको इसकी आवश्यकता नहीं है।
  5. बस एक मानक CMD विंडो खोलें और टाइप करें:
    ncftpput -u * yourUserNameHere * -p * yourUserPasswordHere * -R * www.yourWebsite.com * /
                     _C: \ yourFolderDirectoryHere \\ * _
    (एक पंक्ति के रूप में)।

ध्यान दें कि:

  • -R "पुनरावर्ती" के लिए एक ध्वज है; यह कमांड की प्रतिलिपि सभी सबफ़ोल्डर्स को पुनरावर्ती बनाता है
  • / (स्लैश) आपकी वेबसाइट की रूट डायरेक्टरी है
  • C:\yourFolderDirectoryHere\* अंदर सब कुछ चुनता है C:\yourFolderDirectoryHere

अच्छा लग रहा है, लेकिन सर्वर ने मेरे आईपी पर प्रतिबंध लगाते हुए कहा कि मैंने थोड़े अंतराल में 800 कनेक्शन किए हैं। कनेक्शन की संख्या कम करने का कोई तरीका नहीं। अन्य समस्या यह है कि मुझे नहीं पता कि गंतव्य फ़ाइल पहले से मौजूद है या नहीं तो अपलोड कैसे छोड़ें।
16851556

2

मैं एक उत्तर दूंगा - हालांकि यह शुद्ध पाशविक बल है और मामूली रूप से सुरुचिपूर्ण नहीं है - केवल एक चीज थी जो मेरे लिए कमांड लाइन पर काम करती थी। मैंने फ़ाइलों की एक सूची बनाई, और उन्हें एक स्क्रिप्ट में डाला:

अपनी फ़ाइलों की सूची बनाएँ:

find my-dir -exec echo "put /Users/username/"{} {}  \;

उन्हें स्क्रिप्ट में कॉपी और पेस्ट करें:

#!/bin/bash

hostname="my-ftp-host"
username="username"
password="password"
ftp -in $hostname <<EOF
quote USER $username
quote PASS $password

binary
cd 123456
{COPY THE LIST HERE}
quit
EOF


0

FileZilla इसके लिए बहुत अच्छा है। यदि आप कुछ भी डाउनलोड / इंस्टॉल नहीं करना चाहते हैं, तो यह इंटरनेट एक्सप्लोरर के साथ किया जा सकता है। उन्नत विकल्पों में जाएं, और चुनें Enable FTP folder view (outside of Internet Explorer)। तब आप अपने एफ़टीपी सर्वर पर एक एक्सप्लोरर विंडो और एक्सप्लोरर विंडोज के बीच फ़ाइलों और फ़ोल्डरों को खींच सकते हैं।


0

फ़ायरफ़ॉक्स में FireFtp नामक एक प्लग-इन है जो एक अच्छा ftp क्लाइंट है।


0

लक्ष्य dir एक ज़िप फ़ाइल है। आप नीचे कोड का उपयोग करके पूर्ण ज़िप फ़ाइल को ftp सर्वर में कॉपी कर सकते हैं।

//Taking source and target directory path
string sourceDir = FilePath + "Files\\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\\ConfigurationFile\\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\\XmlFile";

string targetDir = FilePath + "Files\\Customers\\" + CustomerName + "\\" + SystemName + "\\";                                                                                       
foreach (var srcPath in Directory.GetFiles(sourceDir))
{
    //Taking file name which is going to copy from the sourcefile                                              
    string result = System.IO.Path.GetFileName(srcPath);

    //If that filename exists in the target path
    if (File.Exists(targetDir + result))
    {
        //Copy file with a different name(appending "Con_" infront of the original filename)
        System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
    }
    //If not existing filename
    else
    {
        //Just copy. Replace bit is false here. So there is no overwiting.
        File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
    }
}         

यह अच्छा है, लेकिन आपका कार्यक्रम संकलित नहीं करता है।
DavidPostill

0

मेरा उत्तर @dgig के उत्तर की भिन्नता है।

आप सभी फाइलों को सूचीबद्ध कर सकते हैं और उन्हें एक फाइल में डाल सकते हैं (कमांड सहित)

find my-dir -exec echo "put /Users/username/"{} {} > list.txt \; 

और फिर फ़ाइल को संसाधित करने के लिए sftp का उपयोग करें:

sftp -C -b sftpbatchfile.txt name@server

-Cसंपीड़न के लिए -bहै, बैच फ़ाइल के लिए है


यह FTP का उपयोग नहीं करता है जैसा कि पूछा गया है। sftpकार्यक्रम SFTP प्रोटोकॉल है जो एक अलग प्रोटोकॉल है, हालांकि यह आम में कुछ अक्षरों का उपयोग करता है। और आपने enter code hereबचे हुए को संपादित नहीं किया ।
dave_thompson_085
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.