![bash - 复制具有相同名称的多个文件](https://linux22.com/image/1564051/bash%20-%20%E5%A4%8D%E5%88%B6%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E5%90%8D%E7%A7%B0%E7%9A%84%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我想将同名但位于不同文件夹中的文件复制到 destdir。问题是不要在 destdir 中覆盖它们。
基本上这就足够了,尽管我不知道如何重命名每个文件。至于现在它们都被覆盖了:
$ cp /src/文件夹/*/文件 ~/dest/*
答案1
以下是一种方法:
cd /src/folder
for f in */file; do
cp -v "$f" ~/dest/"${f//\//_}"
done
将复制/src/folder/foobar/file
到~/dest/foobar_file
哪个应该是唯一的
答案2
您可以查看该--backup
选项是否cp
可用(我相信它不在 MacOS 上,但我可能错了):
cp --backup=t /src/folder/*/file /dest
将创建 file.jpg.~1~、file.jpg.~2~ 等等。