我正在尝试通过 SSH 复制文件,但scp由于不知道我需要的确切文件名而无法使用。尽管小二进制文件和文本文件传输良好,但大二进制文件会被更改。这是服务器上的文件:
remote$ ls -la
-rw-rw-r-- 1 user user 244970907 Aug 24 11:11 foo.gz
remote$ md5sum foo.gz
9b5a44dad9d129bab52cbc6d806e7fda foo.gz
Run Code Online (Sandbox Code Playgroud)
这是我移动后的文件:
local$ time ssh me@server.com -t 'cat /path/to/foo.gz' > latest.gz
real 1m52.098s
user 0m2.608s
sys 0m4.370s
local$ md5sum latest.gz
76fae9d6a4711bad1560092b539d034b latest.gz
local$ ls -la
-rw-rw-r-- 1 dotancohen dotancohen 245849912 Aug 24 18:26 latest.gz
Run Code Online (Sandbox Code Playgroud)
请注意,下载的文件比服务器上的文件大!但是,如果我对一个非常小的文件做同样的事情,那么一切都会按预期进行:
remote$ echo "Hello" | gzip -c > hello.txt.gz
remote$ md5sum hello.txt.gz
08bf5080733d46a47d339520176b9211 hello.txt.gz
local$ time ssh me@server.com -t 'cat /path/to/hello.txt.gz' …Run Code Online (Sandbox Code Playgroud)