是否可以使用 wget 在我自己的系统中复制文件?

αғs*_*нιη 5 command-line wget

我想在我自己的系统中移动/复制大尺寸文件,并且我想使用wget带有-c开关的命令来进行可恢复的传输。copy( cp) 或 move( mv) 命令没有为我提供这个选项。

是否可以使用wget将这些文件从一个目录复制到我自己系统中的另一个目录?

roa*_*dmr 18

是的,但是您需要设置一个 Web 服务器来为您需要复制的文件提供服务。

尝试这样的事情。在终端上,启动一个简单的 Web 服务器:

cd /etc/
python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

然后打开另一个终端并执行:

wget http://localhost:8000/passwd 
Run Code Online (Sandbox Code Playgroud)

passwd 文件将下载到您的当前目录。您实际上是将它从 /etc/ 复制到您的主目录。

我不确定您为什么要这样做,但是原则上,正如您所见,这是可能的。

  • @donbright,您可以尝试“python3 -m http.server”,因为此命令适用于 Python 2。如果您收到错误,您应该发布错误,以便其他人可以提供帮助。 (2认同)

Bri*_*n Z 18

改用它可能更有意义rsync。例如:

rsync -aP /source ~/destination
Run Code Online (Sandbox Code Playgroud)

-P--partial从标志能防止不完整的文件,如果有中断被删除。如果您再次运行相同的命令,任何未完成的传输将被恢复。

这样,您就无需担心本地 Web 服务器,而wget.


mur*_*uru 9

虽然我强烈推荐rsync,但您可以在curl不运行 HTTP 服务器的情况下使用:

curl -O -C - file:///path/to/some/file
Run Code Online (Sandbox Code Playgroud)

curl与 不同wget,但同样强大,甚至更强大。在任何系统上都有它总是很方便。

来自man curl

   -C, --continue-at <offset>
          Continue/Resume  a  previous  file transfer at the given offset.
          Use  "-C  -" to tell curl to automatically find out where/how to
          resume the transfer
   -O, --remote-name
          Write  output to a local file named like the remote file we get.
Run Code Online (Sandbox Code Playgroud)