我遵循SocketXP代理下载和安装,在第一步中,我被要求运行以下命令:
curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx && sudo socketxp /usr/local/bin
随后出现了一些混乱,因为bin-folder现在似乎是一个可执行文件。实际上,我并没有将socketxp插入到/usr/local/bin文件夹中,而是删除了整个文件夹,并将其替换为socketxp文件,该文件现在重命名为一个名为bin的文件。
但是,在重新创建该文件夹后,我可以将测试文件传输到其中,而不会出现问题。
~触觉试验 ~sudo mv测试/usr/local/bin
因此,在看到这个之后,我重新运行了相同的socketxp安装命令,这一次它运行得很好。
我不知道最初的问题是什么,但我很有兴趣不让这种情况再次发生。我怀疑我错过了一些基本的mv知识。感谢任何能为我解释问题起因的提示和建议。
我是在西门子的64位Linux控制器上这样做的,该控制器运行一个基于Debian的操作系统。
发布于 2022-03-30 15:36:07
我被要求运行以下命令: curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx && sudo socketxp /usr/local/bin这之后出现了一些混乱,因为
bin-folder现在似乎是一个可执行文件。实际上,我并没有将socketxp插入到/usr/local/bin文件夹中,而是删除了整个文件夹,并将其替换为socketxp文件,该文件现在重命名为一个名为bin的文件。
不可信。当mv命令中的目标路径是目录时,源文件将被移动到该目录中(除非被命令行选项覆盖)。这与你在随后的实验中观察到的情况是一致的。
但是,如果只给出一个源,并且目标路径要么不存在(但它的父目录存在),要么指定一个常规文件,那么mv将源重命名为目标。我们只能猜测到底发生了什么,但我的第一个猜测是/usr/local/bin最初并不存在。这可能是因为早期的错误,例如当您真正指的是rm -rf /usr/local/bin时执行rm -rf /usr/local/bin/*,或者机器就是这样出现的。
发布于 2022-03-30 15:15:42
在Linux中,您还可以使用mv重命名文件。要防止像您这样的错误,请始终在您想要移到的路径的末尾添加/:
sudo mv test /usr/local/bin/
这将如您所料,并将文件测试放入/usr/local/bin文件夹中。
正如@JohnBollinger所指出的,如果您不明确告诉mv最后一个参数不是目录,那么它的行为就是将文件移动到现有的文件夹中。
在您的示例中,执行命令时可能根本不存在/usr/local/bin。在这种情况下,带有附加/的变量将发出错误消息。或者您不小心指定了选项-T (可能用于其他命令或复制粘贴错误?)
https://stackoverflow.com/questions/71679695
复制相似问题