суббота, 21 февраля 2015 г.

Сделал архиватор флешек. Это два файла, mkarhiv.bat и mkarhiv.awk.

Это архиватор в стиле Plan 9.
Это значит, что в некоторой папке будут подпапки вида "2015год02месяц13число15часов08минут" и в них будут лежать копии файлов с флешки сделанные в это время. 

Он удобен для архивирования флешек на жесткий диск, для серьезной работы лучше использовать нормальную систему контроля версий (Git, mercurial, fossil).

При архивации копируются только новые и измененные файлы, на старые делается hard link из старой копии. (что такое хардлинк)

Это значит:
1. В любой момент можно увидеть свои старые файлы.
2. Когда потеряете флешку, просто скопируйте последние файлы на новую, и как будто ничего и не случилось.
3. Не нужно хранить стопятьсот одинаковых файлов.
4. Линки все же занимают место, примерно 700 линков занимают примерно мегабайт.
5. Архивы можно делать на диске с NTFS, на FAT нельзя.
6. Редактировать файлы в архиве категорически не рекомендуется, т.к. изменится содержимое  файлов во всех архивах.
7. Папку со старыми архивами можно стирать, т.к. стираются только ссылки на файл но не его содержимое,  содержимое сотрется, если на него не останется ни одной ссылки.

Уникальность файлов проверяется по времени изменения, размеру и имени, т.е. одинаковые файлы из  разных папок хранятся в одном экземпляре, и при перемещении файла его повторного копирования не будет.

Уникальность сжатых файлов (т.е. jpg, zip, pdf и пр.) проверяется только по времени и размеру, т.е. при переименовании или перемещении таких файлов повторного копирования не будет.