Linux 复制扩展名为的文件并按文件名排除

Linux 复制扩展名为的文件并按文件名排除,linux,bash,robocopy,cp,Linux,Bash,Robocopy,Cp,我正在尝试将以下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

我正在尝试将以下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开始

您可以使用
extglob
使用此命令:

shopt -s extglob nullglob dotglob
cd "$srcDir"

cp !(@(Unity|nunit)).{dll,pdp,xml} "$dstDir"

您可以使用
extglob
使用此命令:

shopt -s extglob nullglob dotglob
cd "$srcDir"

cp !(@(Unity|nunit)).{dll,pdp,xml} "$dstDir"

根据以下链接:

您可以使用以下命令:

find [YOUR_SOURCE_ADDRESS] \( -iname \*.dll -o -iname \*.pdb -o -iname \*.xml \) ! \(-name "Unity*" -o -name "nunit*" \) -exec cp -t [YOUR_DEST_ADDRESS] {} +

您可以根据以下链接更改[您的源地址]和[您的目的地址](使用您的serach地址和目的地址进行复制)

您可以使用以下命令:

find [YOUR_SOURCE_ADDRESS] \( -iname \*.dll -o -iname \*.pdb -o -iname \*.xml \) ! \(-name "Unity*" -o -name "nunit*" \) -exec cp -t [YOUR_DEST_ADDRESS] {} +
您可以更改[您的源地址]和[您的目的地址](使用您的serach地址和目的地址进行复制)