Синхронизация, не сканируя отдельные файлы? [закрытый]

Кроме соответствия для пользы соответствий, нет. Хотя это - очень субъективная тема, я предпочитаю использовать смешанный случай для всего SQL. SQL намного легче считать, и ничто не потеряно в современных IDE, где на ключевые слова все наносят цветную маркировку так или иначе.

6
задан Dave Jarvis 14 August 2009 в 05:37
поделиться

2 ответа

Вы можете использовать rsync следующим образом:

rsync --delete -r -u /home/user/music/flac/* /media/MUSIC/flac

Он удалит файлы в / media / MUSIC / flac (никогда на главном сервере) и обновит их в зависимости от даты файла.

Есть еще варианты, но я думаю, что вам достаточно этого способа. : -)

(Я только что сделал простые тесты! Пожалуйста, тестируйте лучше!)

6
ответ дан 17 December 2019 в 02:31
поделиться

Вы можете использовать простой старый cp для копирования новых и измененных файлов (если ваши файловые системы имеют рабочие метки времени):

cp -dpRuv /home/user/music/flac /media/MUSIC/

Для удаления файлов из места назначения, которые не не существует в источнике, вам нужно будет использовать find. Создайте сценарий /home/user/bin/remover.sh примерно так:

#!/bin/bash

CANONNAME="$PWD/$(basename $1)"
RELPATH=$(echo "$CANONNAME" | sed -e "s@/media/MUSIC/flac/@@")
SOURCENAME="/home/user/music/flac/$RELPATH"

if [ ! -f "$SOURCENAME" ]; then
        echo "Removing $CANONNAME"
        rm "$CANONNAME"
fi

Сделайте его исполняемым, затем запустите из find :

find /media/MUSIC/flac -type f -execdir /home/user/bin/remover.sh "{}" \;

Единственное, что выиграло ' Единственное, что нужно сделать - это удалить каталоги из места назначения, которые были удалены в источнике - если вы тоже этого хотите, вам придется сделать третий проход с аналогичной комбинацией поиска / сценария.

0
ответ дан 17 December 2019 в 02:31
поделиться
Другие вопросы по тегам:

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