簡體   English   中英

復制帶有擴展名的文件並按文件名排除

[英]Copy files with extension and exclude by filename

我正在嘗試將以下robocopy命令移植到Linux:

robocopy SrcDir DstDir *.dll *.pdb *.xml /xf Unity*.* nunit*.*

換句話說,我要:

  • 包括所有dllpdbxml文件
  • 除非它們以Unitynunit

我已經閱讀了以下兩個線程,但無法確定確切的語法:

到目前為止,我最好的猜測是:

  • 啟用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"

根據下面的鏈接:

BASH復制除一個文件外的所有文件

您可以使用以下命令:

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](以及您的搜索地址和復制目的地地址)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM