![cp - 复制并保留不同的版本](https://linux22.com/image/1355752/cp%20-%20%E5%A4%8D%E5%88%B6%E5%B9%B6%E4%BF%9D%E7%95%99%E4%B8%8D%E5%90%8C%E7%9A%84%E7%89%88%E6%9C%AC.png)
如何将所有具有不同内容的 .aze 文件复制到文件夹 3 中?屏幕显示我不想执行的操作。我想要接近的是将文件 3 中的 file1(1).aze 和 file1(2).aze(以及其他 .aze)放在文件夹中
我想要文件夹 3 中的 file1.aze 的两个版本。
我用
find -name "*.aze" -exec cp {} folder3/ \;
我尝试添加--parents
,但它还保留了具有相同内容和相同名称的文件。(我只想要每个版本一份副本。)
答案1
我不清楚您想要的结果是什么。您是否想要将folder1/file1.aze
和folder2/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 {} \;