0

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

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

以及文件夹 B 中的一堆同名文件。

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

据我了解,使用

cp folderB/*.txt folderA/

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

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

4

2 回答 2

2

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

于 2011-12-13T11:23:47.427 回答
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/
于 2011-12-13T11:39:11.333 回答