我有一个rsync命令复制我的文件从开发生产。 我不想复制位于HTML目录根目录中的.htaccess文件,但是我想要复制其子目录中的less数.htaccess文件。
我正在使用参数--exclude .htaccess这是停止所有的文件被复制。 我包括的其他论点是-a --recursive --times --perms 。 有没有可能configurationrsync来做到这一点?
编辑:这是我的全部命令:
rsync -a --recursive --times --perms \ --exclude prop_images --exclude tracking --exclude vtours \ --exclude .htaccess --exclude .htaccess_backup --exclude "*~" \ /home/user/dev_html/* /home/user/public_html/
当您指定--exclude .htaccess ,您排除以.htaccess结尾的任何path。
要仅排除传输源根目录下的.htaccess,您需要--exclude /.htaccess
从rsync的手册页,一些进一步的细节和对附加阅读的引用:
- 如果模式以/开始,则它锚定到文件层次结构中的特定位置,否则将匹配path名的结尾。 这与正则expression式中的前导^类似。 因此,“/ foo”会在“传输根目录”(全局规则)或合并文件目录(对于目录规则)中匹配名为“foo”的文件。 不合格的“foo”会匹配树中任何位置的名为“foo”的文件或目录,因为该algorithm是从上到下recursion应用的; 它的行为就好像每个path组件在文件名的末尾都有一个转弯。 即使未连接的“sub / foo”也会在层次结构中的任何一个点上匹配,在“sub”目录中find“foo”。 有关如何指定与传输根目录相匹配的模式的完整讨论,请参阅“锚定包含/排除模式”一节。
试试这个选项:
--exclude 'some/parts/of/path/.htaccess'
Globs也被允许:
--exclude 'some/*/of/*/.htaccess'