2011-04-11 17:59:58 +0000 2011-04-11 17:59:58 +0000
30
30

Kann ich einen ganzen Ordner per FTP hochladen?

Ich muss einen kompletten Ordner mit FTP hochladen. Gibt es eine Möglichkeit, einen Ordner und seinen gesamten Inhalt auf einmal zu übertragen?

Antworten (11)

24
24
24
2014-04-22 10:20:57 +0000

Sie können ncftpput verwenden. Gehen Sie wie folgt vor:

  1. ncftp installieren:

yum ist klein geschrieben.

Alternativ dazu:

apt-get install ncftp
  1. Führen Sie den folgenden Befehl aus:
ncftpput -R -v -u "ftp-username" ftp.website.com ftp-upload-path local-path/*
24
24
24
2011-05-09 11:50:59 +0000

Wenn Sie einen Standard-ftp-Befehlszeilen-Client verwenden, können Sie mit dem Befehl MPUT alle Dateien übertragen, die zu einem (Shell-glob-artigen) Muster passen, also MPUT * sendet alle Dateien im aktuellen Verzeichnis. Es gibt auch MGET zum Abrufen von Dateien, die auf ein Muster passen.

Standardmäßig fragen sowohl MPUT als auch MGET vor jeder Datei ab, ob sie übertragen werden soll. Wahrscheinlich möchten Sie die Abfrage mit dem Befehl “PROMPT” ausschalten (kein Argument; es ist ein Umschaltbefehl).

8
8
8
2011-04-12 13:45:04 +0000

Verwenden Sie einen FTP-Client wie LeechFTP oder FileZilla oder etwas Ähnliches. Viele Leute schwören auf CuteFTP, aber das ist Shareware, soweit ich weiß. Alle unterstützen das Übertragen eines ganzen Ordners einschließlich der Verzeichnisstruktur.

5
5
5
2011-04-11 18:03:23 +0000
  1. lassen Sie den Benutzer/Client den Ordner zippen
  2. laden Sie die Zip-Datei hoch
  3. den Ordner serverseitig entpacken.
2
2
2
2017-01-31 18:48:31 +0000

Ich werde eine Antwort anbieten, die - obwohl sie reine Brute-Force ist und nicht im Geringsten elegant - das einzige war, was bei mir auf der Kommandozeile funktionierte. Ich habe eine Liste der Dateien erstellt und sie in ein Skript eingefügt:

die Liste der Dateien generieren:

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

Kopieren Sie sie und fügen Sie sie in das Skript ein:

#!/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
2
2
2
2014-11-18 18:33:31 +0000

Eine einfache Anleitung für andere Windows-Neulinge wie mich, die hier landen:

Der einfachste Weg, einen ganzen Ordner (mit allen Unterordnern und Dateien darin) hochzuladen, ist:

  1. Laden Sie NcFTP Client (er ist kostenlos, aber Sie können spenden) von diesem Link .
  2. Wählen Sie NcFTP Client 3.2.5 für Microsoft Windows aus der Liste.
  3. Installieren Sie es.
  4. Danach öffnet sich ein kleines CMD-Fenster mit einem Kirschensymbol. Sie brauchen es nicht.
  5. Öffnen Sie einfach ein Standard-CMD-Fenster und geben Sie ein: ncftpput -u \*yourUserNameHere\* -p \*yourUserPasswordHere\* -R \*www.yourWebsite.com\* / \_C:\yourFolderDirectoryHere\*\_ (als eine Zeile).

Beachten Sie, dass:

  • -R ist ein Flag für “rekursiv”; es bewirkt, dass der Befehl alle Unterordner rekursiv kopiert
  • / (Schrägstrich) ist das Stammverzeichnis Ihrer Website
  • C:\yourFolderDirectoryHere\* wählt alles innerhalb von C:\yourFolderDirectoryHere aus
1
1
1
2011-04-11 18:03:48 +0000

Probieren Sie dies aus .

Sie können auch programmatisch einen Ordner auf dem Server erstellen , und dann alle Dateien in diesen neuen Ordner hochladen.

0
0
0
2016-06-15 04:20:22 +0000

Das Zielverzeichnis ist eine Zip-Datei. Sie können die vollständige Zip-Datei mit dem folgenden Code auf den FTP-Server kopieren.

//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);
    }
}
0
0
0
2011-04-12 14:20:35 +0000

Firefox hat ein Plug-in namens FireFtp , das ein netter ftp-Client ist.

0
0
0
2011-04-12 13:50:02 +0000

FileZilla ist dafür hervorragend geeignet. Wenn Sie nichts herunterladen/installieren möchten, können Sie dies auch mit dem Internet Explorer tun. Gehen Sie in die erweiterten Optionen, und wählen Sie Enable FTP folder view (outside of Internet Explorer). Dann können Sie ein Explorer-Fenster auf Ihren FTP-Server richten und Dateien und Ordner per Drag-and-Drop zwischen den Explorer-Fenstern verschieben.

0
0
0
2017-03-25 15:21:50 +0000

Meine Antwort ist eine Abwandlung von @dgig ‘s Antwort.

Sie können alle Dateien auflisten und in eine Datei speichern (inklusive Put-Befehl):

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

und dann sftp verwenden, um die Datei zu verarbeiten:

sftp -C -b sftpbatchfile.txt name@server

-C ist für die Komprimierung, -b ist für die Batch-Datei