我正在尝试编写一个简单的 bash 脚本,它将文件夹的全部内容(包括隐藏文件和文件夹)复制到另一个文件夹中,但我想排除某些特定文件夹。我怎么能做到这一点?
使用 rsync:
rsync -av --exclude='path1/to/exclude' --exclude='path2/to/exclude' source destination
请注意,使用source和source/是不同的。尾部斜杠表示将文件夹的内容复制source到destination. 没有尾部斜杠,这意味着将文件夹复制source到destination.
source
source/
destination
或者,如果您有很多要排除的目录(或文件),您可以使用--exclude-from=FILE,其中FILE是包含要排除的文件或目录的文件的名称。
--exclude-from=FILE
FILE
--exclude还可能包含通配符,例如--exclude=*/.svn*
--exclude
--exclude=*/.svn*