Belirli dosyaların / klasörlerin arşivlenmesini hariç tutmayı destekleyen basit bir kabuk komutu / komut dosyası var mı?
Yedeklemek gerekmez çok büyük dosyaları bir dizi olan bir alt dizini ile arşivlenmesi gereken bir dizin var.
Tam çözüm değil:
tar --exclude=PATTERN
Komut verilen desen ve Kapsam dışı bu dosyaların maçları, ama belirli dosyaları ve klasörleri gözardı edilecektir (tam dosya yolu), aksi geçerli dosyalar dışarıda tutulmuştur gerekir.
Ayrıca, bir komut listesi oluşturmak ve arşivlemek ve listeyi tar'a aktarmak istemediklerimi hariç tutmak için find komutunu kullanabilirim, ancak bu yalnızca az miktarda dosyayla çalışır. On binlerce var.
Tek çözüm dışlanacak dosyalar / klasörler listesi olan bir dosya oluşturmak, sonra --exclude-from=file
bir tmp dizinine tüm dosyaları kopyalamak için rsync kullanmak ve sonra bu dizini arşivlemek için tar kullanmak olduğunu düşünmeye başlıyorum .
Daha iyi / daha verimli bir çözüm düşünen var mı?
EDIT: Charles Ma'nın çözümü iyi çalışıyor. Büyük sorun , tar komutunun başında --exclude='./folder'
OLMALIDIR . Tam komut (önce cd, yani yedekleme bu dizine görecelidir):
cd /folder_to_backup
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
--exclude
ilk olmak zorunda değildir, ancak kaynak dizinden önce bir yere gelmelidir (Cygwin'de tar 1.29 ile test edilmiştir).