One line ftp server in python

前端 未结 9 1836
清歌不尽
清歌不尽 2020-12-07 08:03

Is it possible to have a one line command in python to do a simple ftp server? I\'d like to be able to do this as quick and temporary way to transfer files to a linux box wi

9条回答
  •  甜味超标
    2020-12-07 08:28

    The answers above were all assuming your Python distribution would have some third-party libraries in order to achieve the "one liner python ftpd" goal, but that is not the case of what @zio was asking. Also, SimpleHTTPServer involves web broswer for downloading files, it's not quick enough.

    Python can't do ftpd by itself, but you can use netcat, nc:

    nc is basically a built-in tool from any UNIX-like systems (even embedded systems), so it's perfect for "quick and temporary way to transfer files".

    Step 1, on the receiver side, run:

    nc -l 12345 | tar -xf -
    

    this will listen on port 12345, waiting for data.

    Step 2, on the sender side:

    tar -cf - ALL_FILES_YOU_WANT_TO_SEND ... | nc $RECEIVER_IP 12345
    

    You can also put pv in the middle to monitor the progress of transferring:

    tar -cf - ALL_FILES_YOU_WANT_TO_SEND ...| pv | nc $RECEIVER_IP 12345
    

    After the transferring is finished, both sides of nc will quit automatically, and job done.

提交回复
热议问题