使用cp命令将一组文件复制到另一组(具有相同的名称),而不进行覆盖和重命名

时间:2011-12-13 11:19:51

标签: linux file unix copy cp

假设我在文件夹A中有一堆文件:

1.txt
2.txt
3.txt
...

文件夹B中的一堆文件,名称相同。

我想将文件夹B中的所有文件移动到文件夹A中,而不会丢失任何文件。这意味着需要重命名某些文件。例如,1cp.txt,2cp.txt,3cp.txt,...

据我了解,使用

cp folderB/*.txt folderA/

将覆盖文件夹A中的所有文件。然而,如果我使用-n标志,这意味着不会复制任何内容,因为-n可以防止覆盖。

有谁知道如何实现此复制和重命名程序,以便保留两个文件夹中的所有文件?

2 个答案:

答案 0 :(得分:2)

您可以使用-b(备份每个现有文件)。 --backup接受控制行为的参数。 否则,您可以创建更多行,并在更详细的脚本中检查您的文件。

答案 1 :(得分:0)

首先,您可以重命名它。

$ rename -n 's/\d{5}(\d{3})\.JPG$/BeachPics_$1\.jpg/' *.JPG
00000123.JPG renamed as BeachPics_123.jpg
00000124.JPG renamed as BeachPics_124.jpg
00000125.JPG renamed as BeachPics_125.jpg

然后复制它。

cp folderB/*.txt folderA/