1

Я настраиваю rsyncrypto для создания резервной копии моего пользовательского каталога. Я прочитал это, чтобы исключить каталоги, которые мне нужно исключить с помощью find и pipe к rsyncrypto.

Я пытаюсь исключить шифрование и синхронизацию всех каталогов .svn.

Вот команда поиска, которую я использую. Я не вижу никаких каталогов .svn в выводе:


find ~/Documents -type d (-name .svn) -prune -o -print


Но когда я передаю вывод в rsyncrypto, я вижу множество каталогов .svn, которые зашифрованы.


find ~/ Documents -type d (-name .svn) -prune -o -print | rsyncrypto -vc --trim = 3 --filelist - / tmp / Documents / Documents.keys backup.crt


Может кто-нибудь помочь мне переписать команду, чтобы исключить из rsyncrypto любые файлы / папки, которые имеют .svn в своем пути?

1 ответ1

1

Ваша оригинальная команда find печатает все каталоги, кроме тех, которые находятся в каталоге .svn , в частности, она печатает ~/Documents . Экспериментально rsynccrypto возвращается во все существующие каталоги в списке файлов, хотя (как вы, я думаю) я понимаю документацию, чтобы сказать, что он должен рекурсировать только в каталоги с добавленным / .

Поэтому вам нужно печатать только файлы, которые не являются каталогами. Это означает, что вы должны ограничить -print с помощью -type f (для резервного копирования только обычных файлов) или ! -type d (для резервного копирования всех не-каталогов, включая символические ссылки).

find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
              -o \! -type d -print

Обратите внимание, что это не приведет к резервному копированию времени модификации и владения каталогами или пустыми каталогами. Это будет включать также пустые каталоги:

find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
              -o \! -type d -print \
              -o -type d -empty -print

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .