Как синхронизировать Thunderbird с моими posteo.de адресами

ПРЕДУПРЕЖДЕНИЕ. Без специальных обходных путей GNU cp --attributes-only усекает файлы назначения, по крайней мере, в Precise. См. Править ниже.

ПРЕДУПРЕЖДЕНИЕ. Без специальных обходных путей GNU cp --attributes-only усекает файлы назначения, по крайней мере, в Precise. См. Править ниже.

В этой ситуации вам, вероятно, понадобится опция --attributes-only GNU cp вместе с --archive, поскольку она проверена и проверена кодом, делает все атрибуты агностики в файловой системе и не делает : cp --archive --attributes-only /source/of/failed/backup/. /destination/

Как и в случае с файлами, cp является аддитивным с расширенными атрибутами: если оба источника и получателя имеют расширенные атрибуты, он добавляет расширенные атрибуты источника к месту назначения (вместо того, чтобы сначала удалить все назначения xattrs адресата). Хотя это отражает то, как cp ведет себя, если вы копируете файлы в существующее дерево, возможно, это не так, как вы ожидаете.

Также обратите внимание, что если вы не сохранили жесткие ссылки в первый раз с rsync но хочу сохранить их сейчас, тогда cp не исправит это для вас; вам, вероятно, лучше всего переиграть rsync с правильными параметрами (см. мой другой ответ) и быть терпеливым.

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

Источник: GNU coreutils manual

добавляет

cp из GNU coreutils> = 8.17 и выше будет работать, как описано, но coreutils & lt; = 8.16 будет обрезать файлы при восстановлении их метаданных. Если вы сомневаетесь, не используйте cp в этой ситуации; использовать rsync с GNU coreutils manual и / или быть терпеливым.

Я бы не рекомендовал это, если вы не полностью понимаете, что делаете, но ранее GNU cp может быть предотвращено усечение файлов с помощью трюка LD_PRELOAD:

/*
 * File: no_trunc.c
 * Author: D.J. Capelis with minor changes by Zak Wilcox
 *
 * Compile:
 * gcc -fPIC -c -o no_trunc.o no_trunc.c
 * gcc -shared -o no_trunc.so no_trunc.o -ldl
 *
 * Use:
 * LD_PRELOAD="./no_trunc.so" cp --archive --attributes-only  
 */

#define _GNU_SOURCE
#include 
#define _FCNTL_H
#include 

extern int errorno;

int (*_open)(const char *pathname, int flags, ...);
int (*_open64)(const char *pathname, int flags, ...);

int open(const char *pathname, int flags, mode_t mode) {
        _open = (int (*)(const char *pathname, int flags, ...)) dlsym(RTLD_NEXT, "open");
        flags &= ~(O_TRUNC);
        return _open(pathname, flags, mode);
}

int open64(const char *pathname, int flags, mode_t mode) {
        _open64 = (int (*)(const char *pathname, int flags, ...)) dlsym(RTLD_NEXT, "open64");
        flags &= ~(O_TRUNC);
        return _open64(pathname, flags, mode);
}

0
задан 27 September 2017 в 00:36

0 ответов

Другие вопросы по тегам:

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