Кроме соответствия для пользы соответствий, нет. Хотя это - очень субъективная тема, я предпочитаю использовать смешанный случай для всего SQL. SQL намного легче считать, и ничто не потеряно в современных IDE, где на ключевые слова все наносят цветную маркировку так или иначе.
Вы можете использовать rsync следующим образом:
rsync --delete -r -u /home/user/music/flac/* /media/MUSIC/flac
Он удалит файлы в / media / MUSIC / flac (никогда на главном сервере) и обновит их в зависимости от даты файла.
Есть еще варианты, но я думаю, что вам достаточно этого способа. : -)
(Я только что сделал простые тесты! Пожалуйста, тестируйте лучше!)
Вы можете использовать простой старый 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 "{}" \;
Единственное, что выиграло ' Единственное, что нужно сделать - это удалить каталоги из места назначения, которые были удалены в источнике - если вы тоже этого хотите, вам придется сделать третий проход с аналогичной комбинацией поиска / сценария.