Wie kann ich Dateien von UNIX auf Windows übertragen?

Wie kann ich Dateien von UNIX auf Windows übertragen?

Ich möchte eine Datei von einem UNIX-Server auf einen Windows 2003-Server übertragen, daher habe ich sie copsshauf den Windows-Server heruntergeladen und opensshsie ist bereits auf dem UNIX-Server installiert.

Wenn ich den folgenden Befehl ausführe (auf dem UNIX-Server):

scp -r /file_in_unix/ user@windows_hostname:\c:\\\

Die folgende Ausgabe wird angezeigt (auf dem Bildschirm des UNIX-Servers):

100% |***************************************************************|   562       00:00

Wenn ich jedoch versuche, die Datei im CLaufwerk auf dem Windows-Server anzuzeigen, finde ich nichts. Warum wird die Datei nicht angezeigt?

Antwort1

Der Zielpfad sieht falsch aus – für die meisten Unix-Shells ist der Backslash ein Escape-Zeichen, kein Pfadmarker. Daher gehe ich davon aus, dass die Datei mit einem seltsamen Dateinamen im Home-Verzeichnis des SSH-Benutzers abgelegt wurde.

Wenn ich mich richtig erinnere, basiert copssh auf Cygwin, Sie mussten also wahrscheinlich Folgendes ausführen:

scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/

Eine Alternative zum Kopieren in einen SSH-Dienst auf dem Windows-Rechner ist die Verwendung eines GUI-Clients wieWinSCPauf der Windows-Box, um sich bei der Unix-Maschine anzumelden und die Dateien auf diesem Weg zu übertragen - dies ist allerdings nicht geeignet, wenn Sie versuchen, den Prozess zu automatisieren.

Wenn Sie privilegierten Zugriff auf die Unix-Maschine haben (d. h. Sie sind Root oder können es über sudo oder ähnliches werden) und die entsprechende Unterstützung installiert haben, können Sie die Dateien einfach auf eine Windows-Freigabe kopieren. Sie sagen nicht, welches Unix Sie verwenden. Für Ubuntu und ähnliche können Sie mit überprüfen, ob Unterstützung vorhanden ist, und sie installieren, falls nicht. sudo aptitude install smbfsSie können dann eine Windwos-Freigabe mit etwas wie mounten sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName(wobei 11.22.33.44 die IP-Adresse der Windows-Maschine ist. Abhängig von Ihrer Netzwerkkonfiguration können Sie die Maschine möglicherweise mit Namen statt mit Adresse bezeichnen). Sobald Sie das getan haben, können Sie einfach die grundlegenden Dateiverwaltungstools ( cp,, mv...) verwenden, um mit dieser Windows-Freigabe zu interagieren und aufzurufen, umount /mnt/tmpwenn Sie fertig sind. Sie sollten möglicherweise einen aussagekräftigeren Mount-Point-Namen als /mnt/tmp wählen. Sie können die Freigabe natürlich gemountet lassen, wenn die Datenübertragung automatisiert/geplant werden soll. Diese Methode setzt voraus, dass die Unix-Maschine die Dateifreigaben der Windows-Maschine durch alle Firewall-Vorkehrungen sehen kann, die zwischen ihnen bestehen können.

Antwort2

Sie können es auch umgekehrt machen und Dateien von der Windows-Seite ziehen, anstatt sie von der Unix-Seite zu pushen. Sehen Sie sich Tools wieWinSCPDabei handelt es sich um ein grafisches Tool für SCP-Dateiübertragungen, bei dem Sie zwischen dem Erscheinungsbild des Windows Explorers oder des Norton Commanders wählen können. Beide sollten für Sie intuitiv sein. Sobald Sie angemeldet sind, können Sie „auf Windows-Art“ zu den gewünschten Dateien navigieren und sie per Drag & Drop an die gewünschte Stelle ziehen.

Antwort3

VerwendenWinSCPWerkzeug. Funktioniert einwandfrei.

Antwort4

Warum installieren Sie Samba nicht auf der Unix-Box? Dann können Sie Laufwerke zwischen den beiden Systemen zuordnen. Alternativ würde ich psftp (aus der Putty-Suite) anstelle des Befehlszeilenprogramms scp verwenden, da Sie damit nicht vertraut sind und es anscheinend nicht skripten müssen.

verwandte Informationen