在 sftp 中使用“put”命令给出“没有这样的文件或目录”

Mar*_*exa 5 server ssh sftp

我已经回顾了这个主题: How to fix No Such File Or Directory Error message while using sftp Command和其他一些命令,但是没有任何帮助我解决这个问题。

简而言之,我正在尝试将blankfile.txt本地计算机上桌面目录中名为的文件移动到 LAMP 服务器中的远程目录中。

我试过了:

put Desktop/blankfile.txt  
put blankfile.txt 192.168.x.x:/home/user/Desktop/
put /home/user/Desktop/blankfile.txt
Run Code Online (Sandbox Code Playgroud)

(从远程工作目录输入时)

我究竟做错了什么?

Rav*_*ina 5

我的猜测是您不在正确的本地路径中,要找出本地计算机上当前目录的位置,请使用:lpwd

如果您处于错误的路径中,则使用lcd移动到正确的路径,例如:

lcd ~/Desktop
Run Code Online (Sandbox Code Playgroud)

要确保所有文件都已就位,请使用:lls获取本地文件列表。甚至是这样的:

lls blankfile.txt
Run Code Online (Sandbox Code Playgroud)

以确保它在那里。然后您可以使用put开始将其上传到远程计算机:

put blankfile.txt
Run Code Online (Sandbox Code Playgroud)

如果您遇到任何权限错误,请使用pwd命令找出您在远程计算机上的位置。

/var如果您处于与普通用户类似的路径中sftp,很明显您无法在那里上传文件,在这种情况下您将收到如下错误:

remote open("/root/blankfile.txt"): Permission denied
Run Code Online (Sandbox Code Playgroud)

使用cd命令切换到允许写入的目录,然后使用put命令。

可能发生的另一个权限问题是您的本地文件权限,这将产生:

Couldn't open local file "blankfile.txt" for reading: Permission denied
Run Code Online (Sandbox Code Playgroud)

使用 检查您的本地文件权限lls -l blankfile.txt,确保本地计算机上的当前用户有权读取该文件。