Nein, das gewöhnliche netcat hat keine speziellen Befehle. Es interpretiert seine Eingabe nicht und weiß nicht einmal, dass es sich bei der Eingabe / Ausgabe um eine Datei handelt: Die Umleitung wird von Ihrer Shell übernommen, und netcat kümmert sich nicht um die Suche.
Sie benötigen also ein zusätzliches Programm, das die empfangenen Eingaben interpretiert und die Ausgabedateien selbst öffnet. Am Ende würden Sie praktisch neu erfinden tar
. (Oder cpio
oder ein Dutzend anderer ähnlicher Formate.)
[client] tar -cf - fileXYZ | nc <ip> <port> [server] nc -lp <port> | tar -xvf -
Es gibt Windows-Builds von GNU tar, und Win10 wurde kürzlich gestartet, einschließlich bsdtar . Wenn keines verfügbar ist, müssen Sie ein eigenes Protokoll erstellen. Senden Sie den Dateinamen als erste Zeile und anschließend die Daten. Sie müssen einen benutzerdefinierten Code für den Sender und den Empfänger schreiben .
Das Gruppieren mehrerer Befehle in Klammern als einzelne Pipeline-Einheit hilft dabei:
[client] (echo fileXYZ && type fileXYZ) | nc <ip> <port> [server] nc -lp <port> | (read name; name=$; name=$; cat > "$name")
Stattdessen würde ich Samba auf der Linux-Maschine einrichten und eine öffentliche Freigabe konfigurieren, sodass Clients dies einfach tun könnten copy fileXYZ \\<ip>\incoming\fileXYZ
.