将文件复制到目标目录会用文件覆盖目录

将文件复制到目标目录会用文件覆盖目录

在 Solaris 上运行的脚本用于cp将单个文件复制到目标目录中。

有时,此cp命令会使用正在复制的文件覆盖目标目录

例如,当尝试移动test.txt到目录时/home/user/Dest

cp /home/user/Docs/test.txt /home/user/Dest

整个Dest目录变成一个文本文件,其内容test.txt已被重命名Dest

我可以使用以下方法解决这个问题: cp /home/user/Docs/test.txt /home/user/Dest/test.txt

什么可能导致此问题?

答案1

我想你应该发出:

cp /home/user/Docs/test.txt /home/user/Dest/ 

代替

cp /home/user/Docs/test.txt /home/user/Dest 

末尾的/表示目标是目录而不是文件。

答案2

什么可能导致此问题?

给定

cp /home/user/Docs/test.txt /home/user/Dest

如果该目录/home/user/Dest尚不存在,则该文件/home/user/Docs/test.txt将被复制到文件命名为/home/user/Dest.

正如 @HamdiKadri 回答的那样,将 a 附加/到目标 as/home/user/Dest/确保将其/home/user/Dest视为目录。您也可以将其写为

cp /home/user/Docs/test.txt /home/user/Dest/.

答案3

什么可能导致此问题?

cp /home/user/Docs/test.txt /home/user/Dest

test.txt通过给出上述命令,您将文件的内容复制到/home/user/Dest文件中。如果该文件不存在,它将创建一个名为 的新文件Dest并将内容复制到其中。为了确保您的文件被复制到所需的目录中,请/在最后给出。例如

cp /home/user/Docs/test.txt /home/user/Dest/

另外,如果您使用终端,请使用Tabkey 来避免这些错误。

相关内容