test.txt
我在目录中有一个文件A/B
。我想复制test.txt
并重A/C
命名它newtest.txt
。
我知道我可以使用cp
和mv
命令来执行此操作,但问题是已经有一个test.txt
in A/C
,并且已经有一个newtest.txt
inA/B
并且我不想覆盖这些文件中的任何一个。
我知道我在技术上可以做我想做的事mv test.txt ./verynewtest.txt && cp verynewtest.txt ../C && mv verynewtest.txt test.txt && cd ../C && mv verynewtest.txt newtest.txt
,但这似乎很长。
有没有更快/更好的方法来做到这一点?
答案1
做就是了
$ cd A/B
$ cp test.txt ../C/newtest.txt
使用
$ cp -i test.txt ../C/newtest.txt
检查../C/newtest.txt
(ie, A/C/newtest.txt
) 是否已经存在并要求确认。 (我几乎从来没有故意地覆盖文件,因此我cp
每次cp -i
执行cp
.但小心不要破坏你不想破坏的文件,也不要依赖别名来拯救你,这也是明智的。)
答案2
你有
.
`-- A
|-- B
| |-- newtest.txt
| `-- test.txt
`-- C
`-- test.txt
而你想要
.
`-- A
|-- B
| |-- newtest.txt
| `-- test.txt
`-- C
|-- newtest.txt
`-- test.txt
哪里A/C/newtest.txt
有副本A/B/test.txt
。
命令
cp A/B/test.txt A/C/newtest.txt
会那样做的。