覆盖 ~/bin 文件夹

覆盖 ~/bin 文件夹

不知怎的,我意外地覆盖了我的~/bin

我输入了以下命令:$ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

我试图将文件复制到我的bin文件夹中,但却覆盖了该文件夹。

现在:

$ cd ~/bin
bash: cd: /home/dsg/bin: Not a directory

和:

$ diff /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

沒有顯示任何差異。

我该怎么办?

答案1

当您使用以下命令复制文件时:

$ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin

根据目标的不同,会发生不同的事情。

1)〜/ bin 是一个目录

该文件将被复制到 ~/bin 目录中,并保留文件的原始名称。

2)〜/ bin 是一个常规文件

文件 ~/bin 将被源文件覆盖。

3)~/bin 不存在

源文件将被复制到目标名称并创建一个新文件。

默认情况下,~/bin 目录不存在,因此除非您在过去某个时间创建了一个名为 ~/bin 的目录,否则将发生选项 3。如果存在 ~/bin,那么要cp覆盖它的命令必须是一个常规文件而不是目录。

您应该删除 ~/bin 文件并创建一个目录:

$ rm ~/bin
$ mkdir ~/bin

然后您可以使用之前使用的相同命令将 jar 文件复制到其中。

(感谢@grawity 和@garyjohn,这个答案基于他们对这个问题的评论。)

相关内容