rsync удаляет только некоторые расширения файлов из источника после синхронизации

Сценарии запуска/остановки SysVinit запускаются в алфавитно-цифровом порядке в соответствии с порядком сортировки локали по умолчанию «C» (, также известной как POSIX ), поэтому S99foobarзапускается после любых S99[a-e]*сценариев, но перед любыми. S99[g-z]*скрипты.

Скрипты запускаются /etc/init.d/rcмастер-скриптом. Соответствующий код по существу:

for link in /etc/rc.d/rc3.d/S[0-9][0-9]*; do
    test -x "$link" || continue

    # omitted optimization: if previous runlevel already started this service, don't start it again
    # omitted logic: if $DO_CONFIRM is set, prompt for each service
    # omitted logging

    $link start; status=$?

    # omitted status reporting/logging logic based on value of $status
done
0
02.03.2020, 15:29
2 ответа

Возможно, нам придется выполнить синхронизацию дважды, поскольку у нас нет возможности исключить исходное -удаление.

Попробуйте,

rsync -av --remove-source-files --exclude='*.jpg' Source/ Destination ; rsync -av Source/*.jpg Destination 
1
28.04.2021, 23:21

В целях безопасности я бы удалил файлы .nefотдельным шагом после использования rsyncдля передачи файлов обоих типов. Например вот так:

rsync --verbose --archive --prune-empty-dirs \
    --include='*.nef' \
    --include='*.jpg' \
    --include='*/' \
    --exclude='*' \
    "$source/" "$target"

find "$source" -type f -name '*.nef' -delete

Команда rsyncздесь скопирует только файлы .nefи .jpg(пропустит любой другой файл и не создаст пустые каталоги в $targetиз-за --prune-empty-dirs), команда findудалит все файлы .nef.

Я никогда не использую --remove-source-filesс rsync.

1
28.04.2021, 23:21

Теги

Похожие вопросы