【发布时间】:2026-02-07 22:30:01
【问题描述】:
我将所有子目录及其内容复制到我的当前目录,如下所示:
cp -r dirToCopy/* .
但在文件夹dirToCopy 中,有一个名为dirNotToCopy 的子文件夹不应被复制。
如何从我的表达式中过滤掉那个特定的文件夹?
【问题讨论】:
标签: linux bash terminal command cp
我将所有子目录及其内容复制到我的当前目录,如下所示:
cp -r dirToCopy/* .
但在文件夹dirToCopy 中,有一个名为dirNotToCopy 的子文件夹不应被复制。
如何从我的表达式中过滤掉那个特定的文件夹?
【问题讨论】:
标签: linux bash terminal command cp
使用扩展通配符:
shopt -s extglob
cp -r dirToCopy/!(dirNotToCopy) .
【讨论】:
如果你想在单行中做到这一点:
find /path_to/dirToCopy -mindepth 1 -type d ! -name dirNotToCopy -exec cp -r {} . \;
另一种做同样的方式。
【讨论】:
"-R" 标志可以准确复制所有文件,包括 "Symbolic Links",因此您最好使用 "-R": p>
cp -R dirToCopy/!(dirNotToCopy) .
【讨论】: