perl -F '' -lane 'print @F[0..15, -5..-1]' yourfile
-F ''
=> разбиваем строку на отдельные символы, то есть все поля толщиной в 1 символ.
-l
=> ORS=\n
-a
=> @F массив содержит поля, например, $F[15] => содержит 16-й символ
-n
=> не печатать, если не попросить
@F[0..15, -5... -1]
=> это фрагмент массива @F
с первыми 16 символами и последними 5 символами, что-то вроде cut
Не могу вспомнить, можно ли смонтировать моментальный снимок.
И вы можете попробовать использовать zfs diff
, чтобы узнать, находится ли искомый файл в другом снимке.
A snapshot is took each night on this volume. [...] I need the 2 days old version of this file. As this file was deleted several days ago, it is not in the backups.
Каждый снимок показывает файловую систему в указанный момент времени. Моментальные снимки доступны только для чтения -, что означает, что никакие отдельные файлы внутри моментального снимка не могут быть удалены, только полный снимок может быть уничтожен.
Если делать ночные снимки в точках T -1, T -2, T -3,... и удалять сам файл после точки T -3, ваши снимки T -1 и T -2 больше не будут иметь этот файл (, но у остальных он останется ).
Таким образом, ваше решение состоит в том, чтобы восстановить ваш файл из более старого снимка (в вашем случае, самого последнего, на котором настоящий файл еще не был удален ), а затем, при желании, сравнить его с текущей версией. для различий. Конечно, это работает только в том случае, если старые снимки все еще существуют.
Вы также можете клонировать моментальный снимок, если не хотите возиться с.zfs. Скопируйте файлы/папки, которые необходимо восстановить, затем уничтожьте клон.