【Linux】scp指令在输入的本地文件存在的情况下报错"No such file or directory"的解决方案

前两天帮朋友调试一台Linux服务器。
他建造了一台 CentOS 7 .9 机器,非常奇特。
那天他让我使用 scp 传输文件,但终端出现错误,类似于“Nosuchfileordirectory”。
我一看,哦,这家伙用错方法了。
他这边的文件明明是在/home/user下的,但他只是运行ssh连接到它们,然后在服务器根目录下运行scp命令。
在Linux上,一旦连接到它,当前工作目录默认为根目录,并且根本没有这样的文件。

等一下,我问他怎么知道路径的,他说他以前用GUI工具传输过一次,然后就忘了。
有时候人们就是这样,认为简单的事情就容易出错。
我演示了一下,本地直接cd到/home/user目录,然后通过scp传输,一眨眼就成功了。
他还问我是否需要更改任何设置,我说不需要,这只是道路问题。

但我突然想到,它的GUI工具难道总是默认转移到根目录吗?这应该提醒他注意。
有时在使用第三方工具时很容易忽略这些细节。
看看道路分隔线。
本地和服务器是不同的。
它在scp命令中使用/,但有时使用\作为本地路径会报错。
这些小地方一旦习惯了就很容易错过。

他听后说下次要注意了。
我说你应该记录你经常使用的路径,而不是每次都搜索它们。
他问是否需要学习一些Linux基础知识,我说不要太复杂,掌握一些常用命令即可。
看那个scp,它其实有三个参数,localfile.txt、root@xxx.xxx.xxx.xxx和服务器路径。
了解这三个基本就够了。

现在在那里传输文件应该没有问题了。
但我仍然想知道,是否必须确保目标路径存在于其服务器上?例如,如果移动到/dir1 /dir2 ,但服务器上只有/dir1 ,是否应该先mkdir 为dir2 ?这需要再次确认。
有时候一个看似简单的命令,背后其实涉及到很多东西。

LINUX如何远程复制文件_Linux使用scp命令远程传输文件教程

哈哈你写的很详细。
从教科书模式中可以清楚地看出...😅
上周,当一位客户问我如何使用 scp 时。
那不用说了。
我直接打开终端,输入了几个命令给他看。
当我输入时,“看,使用 scp 最简单的方法就是从本地传输到远程或从远程到本地。
例如,如果要将计算机上的 file.txt 传输到服务器,请输入 scp file.txt username@server:/path/ 并输入密码。

但你提到的条件是完美的。
例如,在远程服务器之间传输文件时;上次我忘记了登录两台设备的密码。
结果我就被困在这里太久了。
这让我很生气。
😠
对于选项,我最常用的是 -r,尤其是在复制项目代码时。
还有-v,当出现问题时,它对于排除故障特别方便。
但基本上我不使用-C。
我感觉压缩文本文件的效果很明显,而且速度很慢。

您提到的预防措施非常适合新手。
我有一个朋友第一次使用 scp 并回信。
结果,文件被传输到错误的设备。
最后我不得不自己删除它......🤦‍♂️这样我就不会拼错远程路由的用户名和地址。
👍
说实话,scp很简单,但是不要用它来传输大文件。
上次上传5 00M的视频花了将近一个小时。
最后,使用rsync更快。
🚀
但是,你的文档应该非常清晰,新手阅读后应该能够上手。
但如果你多尝试并在实践中使用它就会变得更方便。
如果您有任何疑问,请随时问我。

如何在linux中用cp复制文件、文件夹到文件夹?

直接用scp就可以了。

服务器本地:scp /path/user@server:/path。
服务器到本地:ssh user@server 然后使用 scp。

-r 是文件夹。

经测试,一般没有错误。
你自己掂量一下吧。