首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >递归复制文件夹,不包括某些文件夹

递归复制文件夹,不包括某些文件夹
EN

Stack Overflow用户
提问于 2010-02-04 00:39:27
回答 7查看 142.2K关注 0票数 208

我正在尝试编写一个简单的bash脚本,将一个文件夹的全部内容(包括隐藏文件和文件夹)复制到另一个文件夹中,但我希望排除某些特定的文件夹。我怎样才能做到这一点呢?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-02-04 02:45:10

使用rsync:

代码语言:javascript
复制
rsync -av --exclude='path1/to/exclude' --exclude='path2/to/exclude' source destination

请注意,使用sourcesource/是不同的。尾部斜杠表示将文件夹source的内容复制到destination中。如果没有尾随的斜杠,则表示将文件夹source复制到destination中。

或者,如果要排除许多目录(或文件),则可以使用--exclude-from=FILE,其中FILE是包含要排除的文件或目录的文件名。

--exclude还可以包含通配符,如--exclude=*/.svn*

票数 355
EN

Stack Overflow用户

发布于 2010-02-04 01:12:40

将焦油与管道一起使用。

代码语言:javascript
复制
cd /source_directory
tar cf - --exclude=dir_to_exclude . | (cd /destination && tar xvf - )

您甚至可以在ssh中使用这种技术。

票数 43
EN

Stack Overflow用户

发布于 2010-02-04 00:50:47

您可以使用tar和--exclude选项,然后在目标中解压它。例如

代码语言:javascript
复制
cd /source_directory
tar cvf test.tar --exclude=dir_to_exclude *
mv test.tar /destination 
cd /destination  
tar xvf test.tar

有关详细信息,请参阅tar的手册页

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2193584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档