Рейтинг:1

Не получается правильный вывод при использовании rsync --delete

флаг ng

Я пытаюсь удалить файлы с помощью rsync --delete, но я продолжаю получать этот вывод.

кли скриншот

sudodus avatar
флаг jp
`rsync` не является общим инструментом удаления. Это инструмент копирования для копирования/обновления целевого дерева каталогов новыми или обновленными файлами в соответствующем исходном дереве каталогов. Опция `--delete` предназначена только для синхронизации, то есть для удаления файлов в цели, если соответствующий файл в источнике был удален.
sudodus avatar
флаг jp
`rm` 'remove' - это стандартный инструмент Linux для удаления псевдонима удалить файл: в соответствии с вашим снимком экрана вы можете попробовать `rm /tmp/backup/foto3.txt` или с контрольной точкой, чтобы подтвердить, `rm -i /tmp /резервная копия/foto3.txt`
Siebren De Coster avatar
флаг ng
@sudodus, чтобы использовать --delete, мне нужно удалить исходные файлы из исходного каталога?
Рейтинг:0
флаг jp

rsync --удалить

@sudodus, чтобы использовать --delete, мне нужно удалить исходные файлы из исходного каталога?

Да, но я бы сказал, что намерение противоположное: это поможет вам удалить файл в цели, когда вы удалили соответствующий файл в источнике.

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


rsync не является общим инструментом удаления. Это инструмент копирования для копирования/обновления целевого дерева каталогов новыми или обновленными файлами в соответствующем исходном дереве каталогов. --удалять опция «только» для синхронизации, то есть для удаления файла в цели, если соответствующий файл в источнике был удален.

Подробное описание смотрите в инструкции человек rsync

        --delete удалить посторонние файлы из целевых каталогов
        --delete-before приемник удаляет перед xfer, а не во время
        --delete-during ресивер удаляет во время передачи
        --delete-delay найти удаления во время, удалить после
        --delete-after приемник удаляет после передачи, а не во время
        --delete-excluded также удалить исключенные файлы из целевых каталогов
        --ignore-missing-args игнорировать отсутствующие исходные аргументы без ошибок
        --delete-missing-args удалить отсутствующие исходные аргументы из пункта назначения


   --удалять
          Это указывает rsync удалять посторонние файлы из принимающего
          стороны (тех, которые не находятся на передающей стороне), а только для
          каталоги, которые синхронизируются. Вы, должно быть, спросили
          rsync для отправки всего каталога (например, «dir» или «dir/») без
          использование подстановочного знака для содержимого каталога (например, «dir/*»)
          поскольку подстановочный знак расширяется оболочкой, и, таким образом, rsync получает
          запрос на передачу отдельных файлов, а не родительских файлов
          каталог. Файлы, исключенные из передачи, также
          исключено из удаления, если вы не используете --delete-excluded
          вариант или отметьте правила как совпадающие только на отправляющей стороне
          (см. модификаторы include/exclude в разделе ПРАВИЛА ФИЛЬТРАЦИИ).

          До версии rsync 2.6.7 этот параметр не работал, если
          --recursive был включен. Начиная с версии 2.6.7, удаления
          также происходит, когда включен параметр --dirs (-d), но только для каталогов
          содержимое которого копируется.

          Эта опция может быть опасной при неправильном использовании! это очень
          рекомендуется сначала попробовать запустить с параметром --dry-run (-n), чтобы
          посмотрите, какие файлы будут удалены.

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

          Опцию --delete можно комбинировать с одним из
          --delete-WHEN параметры без конфликта, а также
          --удалить-исключено. Однако, если ни один из параметров --delete-WHEN
          параметры указаны, rsync выберет --delete-duration
          алгоритм при разговоре с rsync 3.0.0 или новее, а
          --delete-before при разговоре со старым rsync. Видеть
          также --delete-delay и --delete-after.

г.м. «удалить» — это стандартный инструмент Linux для удаления псевдонима, удаления файла.

В соответствии с вашим скриншотом вы можете попробовать

рм /tmp/backup/foto3.txt

или с КПП, для подтверждения,

rm -i /tmp/backup/foto3.txt
Jags avatar
флаг kp
привет @sudodus, не могли бы вы расширить `--exclude`, пожалуйста. Скажем, «источник» и «цель» синхронизированы с помощью «rsync»; оба содержат 3 файла: `a.txt b.txt c.txt`. Теперь мне нравится хранить `a.txt` в `исходном`, но не в `целевом`; и хочет удалить `c.txt` из `источника`, но хочет сохранить его в `цели`. Итак, как мне использовать `--exclude`, пожалуйста. Большое спасибо.
sudodus avatar
флаг jp
@Jags, пожалуйста, создайте собственный вопрос и дайте ссылку на него здесь, чтобы мне было легко его найти, и я попытаюсь объяснить.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.