cp - 复制并保留不同的版本

cp - 复制并保留不同的版本

终端屏幕截图

如何将所有具有不同内容的 .aze 文件复制到文件夹 3 中?屏幕显示我不想执行的操作。我想要接近的是将文件 3 中的 file1(1).aze 和 file1(2).aze(以及其他 .aze)放在文件夹中

我想要文件夹 3 中的 file1.aze 的两个版本。

我用

find -name "*.aze" -exec cp {} folder3/ \;

我尝试添加--parents,但它还保留了具有相同内容和相同名称的文件。(我只想要每个版本一份副本。)

答案1

我不清楚您想要的结果是什么。您是否想要将folder1/file1.azefolder2/file1.aze直接转换为folder3

`-folder3
  +-file1.aze        # <-- from folder1
  `-file1.aze        # <-- from folder2

如果不重命名至少一个文件,则无法做到这一点。类似这样的方法可能适用于重命名带有连续数字的文件:

#!/bin/bash

extension=".aze"
filename="$(basename "$1")"
basename="$(basename "$1" "$extension")"
dst="folder3"

[ "$(dirname "$1")" == "$dst" ] && exit 0

n=0
while [ -f "$dst/$filename" ]; do
  filename="${basename}($((++n)))$extension"
done

cp "$1" "$dst/$filename"

像这样运行:

find -name "*.aze" -exec ./filecopy.sh {} \;

你到底想实现什么?为了保留同一文件的多个版本,你最好使用类似颠覆Mercurial或者git

相关内容