Unix 复制并替换另一个同名目录中的文件

Unix 复制并替换另一个同名目录中的文件,unix,Unix,下面是我面临的情况: 我在一个文件夹中有一个文件data.py,我必须将它复制到另一个目录,在那里我必须首先复制该文件,并将file-file.py替换为第一个文件名,即data.py 对不起,我的问题太让人困惑了 当前: /project/data.py /project1/file.py 预期: /project/data.py /project1/data.py(file.py has to be replaced with data.py with the contents of

下面是我面临的情况: 我在一个文件夹中有一个文件data.py,我必须将它复制到另一个目录,在那里我必须首先复制该文件,并将file-file.py替换为第一个文件名,即data.py

对不起,我的问题太让人困惑了

当前:

/project/data.py

/project1/file.py
预期:

/project/data.py

/project1/data.py(file.py has to be replaced with data.py with the contents of data.py)

Bash不知道您要将file.py替换为data.py。因此,您必须发出两个命令

cd /project/
cp data.py /project1/
rm -f /project1/file.py
更好的方法是,在删除文件之前,确保副本工作正常:

cd /project/
cp data.py /project1/ && rm -f /project1/file.py
-f
是可选的,取决于您的系统、权限等


或:

一般的想法是将data.py放入project1,然后删除file.py


或:


我投票结束这个问题,因为它应该打开,或者可以选择打开。我不确定我是否理解这个问题。默认情况下,
cp
命令覆盖目标文件。这不起作用吗?只需使用
mv
而不是
cp
,就不需要
rm
。如果使用
mv/project/data.py/project1/
,原始文件将不复存在。现在您有了
/project1/data.py
/project1/file.py
。这不是OP要求的这将复制当前目录``cp/project/data.py file.py``中的文件。这将仅复制data.py的内容。但是,我也想替换文件名小心,你在这里的评论不是你的问题
cp/project/data.py file.py
将获得
/project/data.py
/project/file.py
。您需要
/project/data.py
和/project1/data.py
。一致性会给你带来好的答案。将文件从
/project/`复制到/project1/,然后重命名它,或者删除
file.py
。嘿,好的,我知道你的来历了。这个问题的措辞非常奇怪,除了
cp data.py file.py
之外,我不知道如何解释“file.py必须替换为data.py”。
cd /project1/
cp /project/data.py . && rm -f file.py
cd /project1/
cp /project/data.py ./file.py && mv file.py data.py