【发布时间】:2011-01-12 17:01:26
【问题描述】:
我正在尝试编写一个简单的 bash 脚本,它将文件夹的全部内容(包括隐藏文件和文件夹)复制到另一个文件夹中,但我想排除某些特定文件夹。我怎样才能做到这一点?
【问题讨论】:
-
我想像 find 。 -name * 通过管道传输到 grep /v "exclude-pattern" 以过滤您不想要的那些,然后通过管道传输到 cp 进行复制。
-
我试图做类似的事情,但无法弄清楚如何使用 cp 和管道
-
这应该交给超级用户。您要查找的命令是 xargs。你也可以做类似两个 tar 通过管道连接的事情。
-
也许为时已晚,它不能准确回答问题,但这里有一个提示:如果您只想排除目录的直接子级,您可以利用 bash 模式匹配,例如
cp -R !(dir1|dir2) path/to/destination -
注意
!(dir1|dir2)模式需要extglob开启(shopt -s extglob开启)。