Получение rsync для удаления исходных файлов, которые уже существуют в месте назначения

Я не знаю ни одной локали, которая по умолчанию сортирует в таком порядке. Решение состоит в том, чтобы создать пользовательскую локаль с настраиваемым порядком сортировки. Если кто-то четыре года спустя захочет отсортировать по индивидуальному заказу, вот хитрость.

Подавляющее большинство локалей не определяют свой собственный порядок сортировки, а скорее копируют порядок сортировки, определенный в /usr/share/i18n/locales/iso14651_t1_common, так что это то, что вы захотите отредактировать. Вместо того, чтобы менять порядок сортировки почти для каждой локали, модифицируя оригинал iso14651_t1_common, я предлагаю вам сделать копию. Подробности о том, как работает порядок сортировки и как создать пользовательскую локаль в вашем каталоге $HOMEбез root-доступа, можно найти в этом ответе на аналогичный вопрос .

Посмотрите, как aи Aупорядочены на основе их записей вiso14651_t1_common:

 ;;;IGNORE # 198 a
 ;;;IGNORE # 517 A

bи Bаналогичны:

 ;;;IGNORE # 233 b
 ;;;IGNORE # 550 B

Мы видим, что при первом проходе aи Aимеют совпадающий символ , а bи Bимеют совпадающий символ . Поскольку появляется перед в iso14651_t1_common, aи Aсвязаны перед bи B. Второй проход не нарушает совпадения, потому что все четыре символа имеют символ сортировки , но во время третьего прохода ничьи разрешаются, потому что символ сопоставления для строчных букв появляется в строке 3467 перед символом сопоставления для прописные буквы(строка 3488 ). Таким образом, порядок сортировки заканчивается как a, A, b, B.

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

Самый простой способ оставить цифры первыми при установке всех строчных букв перед всеми прописными буквами — заставить все буквы совпадать во время первого сравнения, установив для них равные . Чтобы убедиться, что они сортируются по регистру в алфавитном порядке, измените последний символ сортировки с IGNOREна текущий первый символ сортировки. Следуя этому шаблону, aстанет:

 ;;; # 198 a

Aстанет:

 ;;; # 517 A

bстанет:

 ;;; # 233 b

Bстанет:

 ;;; # 550 B

и так далее для остальных букв.

После того, как вы создали настроенную версию iso14651_t1_common, следуйте инструкциям в ответе, указанном выше , чтобы скомпилировать свою пользовательскую локаль.

4
12.06.2017, 14:15
1 ответ

Честно говоря, это не совсем ответ, потому что это своего рода хакерский способ получения результатов, которые вы запрашиваете. Итак, вот что:

Если вы уберете команду --append-verify и замените ее командой --update, оставьте все остальные параметры и запустите RSYNC без Это.

Это приведет к удалению всех исходных файлов при копировании файлов, которые были изменены.

2
27.01.2020, 20:59

Теги

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