Bir rsync'e dahil edilmeyen dosyalar nasıl eklenir


16

Ben hariç tüm .*dosyaları hariç bir rsync kurmaya çalışıyorum .htaccessama ne yazık ki, bu çalışmıyor:

rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir

Genel hariç tutma kurallarını bir şekilde hariç tutmak mümkün mü?

Yanıtlar:


24

İlk eşleme kuralı geçerlidir, bu nedenle .htaccesshariç tutmadan önce ekleyin .*.

rsync -avP --include=".htaccess" --exclude=".*" . user@server:/dir

Bu .htaccessher düzeyde kopyalanır . Ne ile istediğini bilmiyorum ./.htaccess; yalnızca kopyanın kökündeki bir dosyayla eşleştirmek istiyorsanız, kalıbı a ile başlatın /. Sadece kök .htaccessistiyorsanız, sadece kullanamazsınız --include='/.htaccess' --exclude='.*', çünkü köklü olmayan kural aslında burada öncelik taşır, daha karmaşık bir şey yapmanız gerekir:

rsync -avP --exclude='/*/**/.htaccess' --include='.htaccess' --exclude=".*" . user@server:/dir

İlave okumalar: rsync filtreleri için temel prensipler .


@ fred.bear: Bu gerçek bir yazım hatası ve kötü bir yazımdı. Tespit ettiğiniz için teşekkürler!
Gilles 'SO- kötü olmayı bırak'

Teşekkürler, --includeilkini koymayı denemiştim , ama "./.htaccess" in önündeki "./" onu öldüren şeydi.
Zengin

1
@Rich, bir .htaccessdosya içeren gizli dizinler varsa --include='.*/', finalden önce (bence) zorunda olmanız gerektiğini --exclude, buraya
bakmanız gerektiğini unutmayın
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.