不知何故,我不小心覆盖了我的~/bin.
我输入了命令: $ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin
我试图将文件复制到我的bin文件夹中,但覆盖了该文件夹。
现在:
$ cd ~/bin
bash: cd: /home/dsg/bin: Not a directory
Run Code Online (Sandbox Code Playgroud)
和:
$ diff /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin
Run Code Online (Sandbox Code Playgroud)
显示没有差异。
我该怎么办?
当您使用您使用的命令复制文件时:
$ cp /home/dsg/Downloads/sbt-launch-0.7.4.jar ~/bin
Run Code Online (Sandbox Code Playgroud)
不同的事情发生取决于目标是什么。
1) ~/bin 是一个目录
该文件将被复制到 ~/bin 目录中,并保留文件的原始名称。
2) ~/bin 是一个普通文件
文件 ~/bin 将被源文件覆盖。
3) ~/bin 不存在
源文件将被复制到创建新文件的目标名称。
默认情况下 ~/bin 目录不存在,因此除非您在过去某个时间创建了一个名为 ~/bin 的目录,否则选项 3 将发生。如果存在 ~/bin ,那么cp要覆盖它的命令必须是常规文件而不是目录。
您应该删除 ~/bin 文件并创建一个目录:
$ rm ~/bin
$ mkdir ~/bin
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用之前使用的相同命令将 jar 文件复制到其中。
(感谢 @grawity 和 @garyjohn 对此答案所基于的问题的评论。)
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |