如何将所有文件复制,除了一个文件和一个目录到另一个目录

问题描述:

我有以下目录如何将所有文件复制,除了一个文件和一个目录到另一个目录

  1. 导演答:
    • git的 - >这是一个目录
    • 的.gitignore
    • 风向乙
    • DIR C
    • 风向Ë
    • 文件f
    • 文件克
    • 风向ħ

我想除了复制一切(git的,和的.gitignore风向B)到风向B.(DIR B是下风向A)

我曾尝试以下

cp -r !(Dir B|.git|.gitignore) ~/Dir B 

可正常工作时在终端上运行,但给了我一个错误,当我从詹金斯程序中运行它窗口。

syntax error near unexpected token `(' 

请咨询

+0

当您在终端上成功运行命令时,您正在使用哪个shell(bin,bash,...)?另外,你可以粘贴'ls -l/bin/sh'的输出吗? – Technext 2014-09-13 10:14:31

+0

您是否想将任何隐藏的文件/目录也复制到'Dir B'中? – Technext 2014-09-13 12:39:33

+0

虽然与问题无关,但也有一些错误,因为你的陈述是矛盾的。你提到'Dir B在Dir A下',但是在你的命令中,你已经使用了'〜/ Dir B'。我确定家里不会是'/ home/Dir A'。 – Technext 2014-09-13 12:58:20

试试这个命令 -

rsync -r --exclude='.*' --exclude='DirB' ./ DirB 

我在做,你假设想任何隐藏文件/目录拷贝到目标文件夹,即,Dir B。如果是这样,只需要使用下面的命令,并在相同的外壳使用它们如下图所示的快照:

enter image description here

shopt -s extglob 
cp -r !(Dir B) 'Dir B' 
shopt -u extglob 

您不必明确指定git的 dir和.gitignore文件。另外,您可以根据需要/配置更改上述目标目录('Dir B')。