![如何在不合并的情况下制作一个文件夹的多个副本?](https://linux22.com/image/44871/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E5%90%88%E5%B9%B6%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%88%B6%E4%BD%9C%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E5%A4%9A%E4%B8%AA%E5%89%AF%E6%9C%AC%EF%BC%9F.png)
当要将两个或多个名称相同的文件夹复制到或移动到同一位置时,GUI 文件管理器中或在终端中使用的默认选项cp -r --backup=numbered
或rsync --backup
是合并这些文件夹的内容。
是否有任何本机命令可以制作实际目录的渐进编号副本,例如folder_copy_1、folder_copy_2 等,类似于Windows 中发生的情况?
答案1
假设“本机”是指“通常与基本系统一起安装”,那么不,没有专门的工具,但创建您自己的脚本很容易。
#!/bin/sh
for f in "$@"; do
b=$(basename "$f")
# Grab any numeric suffix
n=${b##*[!0-9]}
# Default to 0 if there is no suffix
case n in *[!0-9]* | '' ) n=0;; esac
e=$(expr $n + 1)
cp "$f" "${b%$n}$e"
done
这应该可以在任何最近的 POSIX shell 中工作。