【问题标题】:Copy all directories except one复制除一个以外的所有目录
【发布时间】:2026-02-07 22:30:01
【问题描述】:

我将所有子目录及其内容复制到我的当前目录,如下所示:

cp -r dirToCopy/* .

但在文件夹dirToCopy 中,有一个名为dirNotToCopy 的子文件夹不应被复制。

如何从我的表达式中过滤掉那个特定的文件夹?

【问题讨论】:

    标签: linux bash terminal command cp


    【解决方案1】:

    使用扩展通配符:

    shopt -s extglob
    cp -r dirToCopy/!(dirNotToCopy) .
    

    【讨论】:

      【解决方案2】:

      如果你想在单行中做到这一点:

      find /path_to/dirToCopy -mindepth 1 -type d  ! -name dirNotToCopy -exec cp -r {} . \; 
      

      另一种做同样的方式。

      【讨论】:

        【解决方案3】:

        "-R" 标志可以准确复制所有文件,包括 "Symbolic Links",因此您最好使用 "-R": p>

        cp -R dirToCopy/!(dirNotToCopy) .
        

        【讨论】:

          最近更新 更多