不知怎的,我意外地覆盖了我的~/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,这个答案基于他们对这个问题的评论。)