首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mv混淆:我按照socketxp指南删除了/usr/local/bin,但只是第一次

mv混淆:我按照socketxp指南删除了/usr/local/bin,但只是第一次
EN

Stack Overflow用户
提问于 2022-03-30 15:03:30
回答 2查看 294关注 0票数 0

我遵循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的操作系统。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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/*,或者机器就是这样出现的。

票数 0
EN

Stack Overflow用户

发布于 2022-03-30 15:15:42

在Linux中,您还可以使用mv重命名文件。要防止像您这样的错误,请始终在您想要移到的路径的末尾添加/:

sudo mv test /usr/local/bin/

这将如您所料,并将文件测试放入/usr/local/bin文件夹中。

正如@JohnBollinger所指出的,如果您不明确告诉mv最后一个参数不是目录,那么它的行为就是将文件移动到现有的文件夹中。

在您的示例中,执行命令时可能根本不存在/usr/local/bin。在这种情况下,带有附加/的变量将发出错误消息。或者您不小心指定了选项-T (可能用于其他命令或复制粘贴错误?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71679695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档