将源目录的内容复制到具有相同名称但不同大小写的目标目录

时间:2016-01-07 21:49:55

标签: bash case-insensitive cp

我正在尝试将源目录复制到目标目录,但问题是目标目录具有相同的名称但不同的情况。

例如,

cp -rp /mydata/AbC.git/* /target/abC.git

为了进一步澄清,我在脚本中使用dir name作为变量:

cp -rp /mydata/${dir_name}.git/* /target/${dir_name}.git

现在,如果源目录和目标目录分别是AbC和abC,那么命令将失败。

我确信所有来源和目的地的拼写都是相同的,但案例不同,没有固定的模式。我在网上查了但是找不到这样的例子。一个链接建议使用shopt -s nocaseglob,但这不起作用。

真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用-iname find选项找到一个不区分大小写的名称。

srcname=AbC.git
dest=$(find /target -maxdepth 1 -iname "$srcname")
cp -rp /mydata/"$srcname"/* "$dest"