将源目录的内容复制到名称相同但大小写不同的目标目录
Copy content of source dir to destination dir having same name but different case
我正在尝试将源目录复制到目标目录,但问题是目标目录具有相同的名称但大小写不同。
例如,
cp -rp /mydata/AbC.git/* /target/abC.git
为了进一步说明,我在脚本中使用目录名称作为变量:
cp -rp /mydata/${dir_name}.git/* /target/${dir_name}.git
现在如果源目录和目标目录分别是 AbC 和 abC,那么命令将失败。
我唯一确定的是源和目标的拼写相同,但大小写不同,没有固定模式。我在网上查过,但找不到这样的例子。一位 link 建议使用 shopt -s nocaseglob
但这行不通。
非常感谢任何帮助。
您可以使用 find
的 -iname
选项来查找匹配 case-insensitively 的名称。
srcname=AbC.git
dest=$(find /target -maxdepth 1 -iname "$srcname")
cp -rp /mydata/"$srcname"/* "$dest"
我正在尝试将源目录复制到目标目录,但问题是目标目录具有相同的名称但大小写不同。
例如,
cp -rp /mydata/AbC.git/* /target/abC.git
为了进一步说明,我在脚本中使用目录名称作为变量:
cp -rp /mydata/${dir_name}.git/* /target/${dir_name}.git
现在如果源目录和目标目录分别是 AbC 和 abC,那么命令将失败。
我唯一确定的是源和目标的拼写相同,但大小写不同,没有固定模式。我在网上查过,但找不到这样的例子。一位 link 建议使用 shopt -s nocaseglob
但这行不通。
非常感谢任何帮助。
您可以使用 find
的 -iname
选项来查找匹配 case-insensitively 的名称。
srcname=AbC.git
dest=$(find /target -maxdepth 1 -iname "$srcname")
cp -rp /mydata/"$srcname"/* "$dest"