我正在尝试将以下robocopy命令移植到Linux:
robocopy SrcDir DstDir *.dll *.pdb *.xml /xf Unity*.* nunit*.*
换句话说,我想:
dll
,pdb
和xml
个文件Unity
或nunit
我已经阅读了以下两个线程,但无法确定确切的语法:
到目前为止,我最好的猜测是:
shopt -s extglob
cd SrcDir
cp ((*.dll | *.pdb | *.xml) && !(Unity*.* | nunit*.*)) DstDir
但是我的条件表达式中出现语法错误,从*.dll
开始。
答案 0 :(得分:2)
您可以使用extglob
:
shopt -s extglob nullglob dotglob
cd "$srcDir"
cp !(@(Unity|nunit)).{dll,pdp,xml} "$dstDir"
答案 1 :(得分:0)
根据以下链接:
BASH copy all files except one
您可以使用以下命令:
find [YOUR_SOURCE_ADDRESS] \( -iname \*.dll -o -iname \*.pdb -o -iname \*.xml \) ! \(-name "Unity*" -o -name "nunit*" \) -exec cp -t [YOUR_DEST_ADDRESS] {} +
您可以更改[YOUR_SOURCE_ADDRESS]和[YOUR_DEST_ADDRESS](使用您的搜索地址和目的地地址进行复制)