Как отлаживать опцию --ссылки -пункта назначения rsync?

Вы можете вставить строку в середину файла с помощью разумного сочетания seekи read, как показано:

$ perl -wMstrict -e '
   my $if = shift;
   my($str, $ins_pos) = qw/CC 5/;
   my($buffer_pre, $buffer_post);

   open my $fh, "+<", $if
      or die "Opening: $!\n";

   # park the pos pointer at the beginning of file
   seek $fh, 0, 0 or die "Seeking: $!\n";
   my $buffer_pre_size = $ins_pos - 1;
   read($fh, $buffer_pre, $buffer_pre_size) == $buffer_pre_size
      or die "Reading: $!\n";

   # park the pos pointer at the eof
   seek $fh, 0, 2 or die "Seeking: $!\n";
   my $eof_pos = tell $fh;
   my $buffer_post_size = $eof_pos - $ins_pos + 1;

   # park the pos pointer at the insertion location
   seek $fh, $ins_pos-1, 0 or die "Seeking: $!\n";
   read($fh, $buffer_post, $buffer_post_size) == $buffer_post_size
      or die "Reading: $!\n";

   # park the pos pointer at the beginning of file
   seek $fh, 0, 0 or die "Seeking: $!\n";
   print $fh $buffer_pre, $str, $buffer_post;

   close $fh or die "Closing: $!\n";
' file.txt

Результаты:

1234CC56789
1
10.05.2021, 00:44
1 ответ

Использование--itemize-changes(или-i)вместо -vдает немного больше информации о причине, по которой что-то происходит с файлами, для которых вы запускаете rsync.

Например, если для файла была изменена его групповая принадлежность, но ничего больше, вы можете увидеть что-то вроде cf.....g...для этого файла. Начальный символ — это «тип обновления», а cозначает просто «изменение» (, т. е. не передачу данных файла ). Следующий fпредставляет собой тип файла («обычный файл» ). gдальше по строке означает, что группа источника и цели отличается.

Все это описано в руководстве rsync. Найдите более подробное описание опции --itemize-changes.

Когда метаданные файла изменяются, он больше не может быть создан как жесткая ссылка на предварительно -существующую копию того же файла с --link-dest. Метаданные не могут отличаться для жестких ссылок одного и того же файла.

2
28.07.2021, 11:33

Теги

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