在我的终端 shell 中,我通过 ssh 连接到远程服务器,然后进入我cd
想要的目录。
现在在这个目录中,有一个名为table
我想复制到本地机器的文件/home/me/Desktop
。
我怎样才能做到这一点?
我试过了,scp table /home/me/Desktop
但它给出了一个关于没有这样的文件或目录的错误。
有谁知道如何做到这一点?
如何将整个目录复制到同名目录中而不替换目标目录中的内容?(相反,我想添加到目标文件夹的内容中)
为什么我*
在路径中使用字符时不能用 scp 复制?
scp SERVERNAME:/DIR/* .
Run Code Online (Sandbox Code Playgroud)
SCP 需要什么配置才能允许*
在路径中?
更新:问题不在服务器端;pscp 正在尝试使用 SCPv1,这就是错误消息的原因:
我想用来scp
上传文件,但有时目标目录可能不存在。
是否可以自动创建文件夹?如果是这样,如何?如果没有,我可以尝试什么替代方法?
我查看了此处的其他问题以及 Internet 上的各种“scp 使用”教程,但我无法弄清楚出了什么问题。
我正在使用 Linux Mint 并试图弄清楚scp是如何工作的。
我在目录/home/name/dir/ 中有一个文件file.ext(在我的电脑上)
我使用ssh连接到远程机器,例如:
ssh -p 2222 username@domain
Run Code Online (Sandbox Code Playgroud)
它问我密码,shell 显示:
username@domain ~ $
Run Code Online (Sandbox Code Playgroud)
现在,如果我发出命令(在我运行 ssh 之前,我在本地目录 /home/name/dir 中):
scp -r -P 2222 file.ext username@domain
Run Code Online (Sandbox Code Playgroud)
输出是:
cp: cannot stat ‘file.ext’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如果我写的是完整路径而不是 file.ext,则结果相同
scp -r -P 2222 /home/name/dir/file.ext username@domain
Run Code Online (Sandbox Code Playgroud)
此外,服务器管理员告诉我,我会将文件上传到我的远程主目录(而不是根目录),例如:
scp -r -P 2222 file.ext username@domain:~/
Run Code Online (Sandbox Code Playgroud)
但是当我这样做并按“Enter”时,什么也没有发生,就好像外壳正在等待进一步的输入一样。
我的问题总结:
有什么建议?
我想要 scp
一个文件到服务器。该文件是一个符号链接,实际上我想做的是复制源文件。
我不想手动跟踪源文件的路径,因为它可以被替换。
我如何获得源文件的绝对路径,以便我可以scp
使用它?
我的目标是使用scp仅将所有文件从~/local_dir复制到user@host.com /var/www/html/target_dir并且不在 local_dir 中创建 local_dir 类别。
/var/www/html/target_dir/files..
Run Code Online (Sandbox Code Playgroud)
但不是
/var/www/html/target_dir/local_dir/files..
使用 -r 参数时
我已经搜索了一段时间,但找不到常规文件的定义。我的路径是永久的(我从 开始/
)并且我正在连接到
scp root@IP: /path/to/picture.jpg
Run Code Online (Sandbox Code Playgroud)
导致查询密码,然后...
scp: .: not a regular file
Run Code Online (Sandbox Code Playgroud) 我正在尝试复制一批文件,scp
但速度很慢。这是一个包含 10 个文件的示例:
$ time scp cap_* user@host:~/dir
cap_20151023T113018_704979707.png 100% 413KB 413.2KB/s 00:00
cap_20151023T113019_999990226.png 100% 413KB 412.6KB/s 00:00
cap_20151023T113020_649251955.png 100% 417KB 416.8KB/s 00:00
cap_20151023T113021_284028464.png 100% 417KB 416.8KB/s 00:00
cap_20151023T113021_927950468.png 100% 413KB 413.0KB/s 00:00
cap_20151023T113022_567641507.png 100% 413KB 413.1KB/s 00:00
cap_20151023T113023_203534753.png 100% 414KB 413.5KB/s 00:00
cap_20151023T113023_855350640.png 100% 412KB 411.7KB/s 00:00
cap_20151023T113024_496387641.png 100% 412KB 412.3KB/s 00:00
cap_20151023T113025_138012848.png 100% 414KB 413.8KB/s 00:00
cap_20151023T113025_778042791.png 100% 413KB 413.4KB/s 00:00
real 0m43.932s
user 0m0.074s
sys 0m0.030s
Run Code Online (Sandbox Code Playgroud)
奇怪的是,传输速率大约为 413KB/s,文件大小大约为 413KB,所以它真的应该每秒传输一个文件,但是每个文件大约需要 4.3 秒。
知道这种开销从何而来,有没有办法让它更快?
以前觉得SCP是SSH复制文件的工具,SSH复制文件叫做SFTP,本身就是FISH的同义词。
但是现在,当我在 Windows 中寻找 Total Commander 插件来执行此操作时,我注意到它的页面上显示“允许通过安全 FTP 访问远程服务器(通过 SSH 的 FTP)。需要 SSH2。这不一样作为SCP!”。
如果它不一样,那么我误解了什么?