Найти в Дзене
Олег.Кряхтит.Онлайн

Как избежать бардака в файлах

Оглавление

Поделюсь своим опытом борьбы сперва с бумажным, потом с цифровым бардаком. Начну с предыстории.

2016 год - первый ящик

Бумаг стало так много, что найти нужные стало невозможно. Если найти нужные нельзя - какой смысл их все хранить? Никакого. Купил органайзер для бумаг - три горизонтальных ящика под А4 формат. Поделили его с будущей женой "пополам":

  1. общий ящик под серьёзные документы типа загранпаспорта
  2. мой личный ящик
  3. её личный ящик

2018 год - ремонт №1

Ничего не предвещало беды, но мы купили квартиру. С покупкой квартиры начался ремонт, с ремонтом - покупка техники, с покупкой техники - куча гарантийных талонов, инструкций итд. В какой из трёх ящиков пихать? Ни в какой.

2019 год - подвесные папки

-2

Обменял квартиру маме. Снова ремонт. Снова куча гарантийных талонов на технику, мой ящик уже давно переполнился. Решили менять подход. Купили специальный ящик и подвесные папки, штук 20. У них есть ярлычки, их можно подписать и сразу класть новые файлы в нужную папку. Вау-вау.

2020 год - шредер

Шредер Deli, у меня как раз такой, 4 класс секретности, покупал за 3000р, сейчас стоит 9000р.
Шредер Deli, у меня как раз такой, 4 класс секретности, покупал за 3000р, сейчас стоит 9000р.

Появилась куча устаревшего хлама, документов у которых истёк срок давности. Поскольку ящик для бумаг - ограниченный ресурс, пришлось вводить процесс регулярного (раз в год) просмотра, нет ли чего-нибудь, что нужно уничтожить. Постепенно это выработалось в то, что в каждой подвесной папке есть лист с оглавлением, в котором перечислены все содержащиеся внутри неё документы, их срок появления и дата, после которой их можно будет уничтожить (и вычеркнуть из оглавления). В 2021 году процесс прошёл в четыре раза быстрее, но теперь, как и в базах данных, индексирование ведёт к удорожанию вставки. Но оно того стоит.

2021 - Paperless

Старенький HP M28w. Не представляю на что его менять, когда сломается, если даже Brother скатился.
Старенький HP M28w. Не представляю на что его менять, когда сломается, если даже Brother скатился.

Отобрал у мамы МФУ, обзавёлся сканером. Теперь все бумаги, которые потенциально когда-либо могли бы мне пригодиться, проходят через сканер, а потом либо в тот ящик с подвесными папками, либо в шредер. Жить стало лучше, жить стало веселее. Вещи вроде всяких там квитанций итд стал просто сохранять на комп, а бумажный оригинал отправлять в шредер. Явного критерия, по которому отправляю бумаги в шредер, либо сохраняю - привести не могу. Допустил некоторую буферизацию - теперь по воскресениям я разбираю груду бумаг, скопившуюся на столе и в рюкзаке. Не должно остаться ничего - всё уходит либо в ящик, либо режется на куски.

2023 - начало порядка

Решил навести порядок в файлах. Дело в том, что у меня оказался multi-master из четырёх машин - рабочий ноут, личный ноут, личный комп и файлопомойка. Где-то важные документы вообще в загрузках лежали годами. Не буду рассказывать как я их сводил к одному целому знаменателю. Здесь советы по способу синхронизации не уверен, что могу давать. Я не очень доверяю syncthing, но многие отзываются о нём хорошо. У меня есть файлопомойка и скрипт `./sync.sh`, который сперва подтягивает изменения из файлопомойки, потом отправляет новое. Скрипт тупой до жути:

git pull origin master
git commit -am "$(date +%s)" && git push origin master

Название коммита так себе, но я всё равно их глазами не читаю. Где я храню документы - в Git-репозитории со включенным LFS. Git-репозиторий хостится на файлопомойке, я использую Forgejo (выбрал буквально первую попавшуюся альтернативу gitlab) и меня он устраивает. Но не будем о нём сейчас. Подход не очень-то ортодоксален, но мне нравится. Я могу откатывать косяки. Единственный минус - я не могу разруливать конфликты в бинарных документах, но я это принял.

2024 - усиление порядка

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

Общий подход к именованию

Все файлы называются YYYY-MM-DD - ключевые, слова, одно, за другим.pdf. В случае, если это чек - среди ключевых слов - название магазина, где товар был приобретён, а в конце прописываю точную сумму.

Структура

Без глубокого уровня вложенности. Стоит учитывать, что это стандартная папка Documents, она же "Мои документы". Внутри:

  • Входящие - папка, куда я скидываю всё, что мне лень разобрать прямо сейчас.
  • Документы - там реально документы, то есть сканы всяких базовых документов любого взрослого человека.
  • Распечатать - временная папка, там ничего не должно залёживаться. Раз в месяц проверяю, что там ничего нет, либо перемещаю, либо удаляю всё из неё.
  • Книги - электронные книги, которые я собираюсь когда-нибудь прочитать. Когда-нибудь хочу прикрутить себе Calibre, но пока что лень.
  • Путешествия - все вот эти посадочные талоны, ваучеры, бронирования отелей, итд. У каждой поездки своя папка. Папки тоже содержат в названии дату, страну и город.
  • Медицина - раньше использовал в том числе для получения налогового вычета, сейчас жизнь стала легче, налоговой достаточно одной лишь справки, хранить все чеки, договоры, лицензии клиник больше не нужно. Ну то есть могут попросить, но в 2025 обошлось и без них. Сейчас там только заключения врачей, результаты анализов и т.д. На медицинскую карту оно похоже, но очень неудобно тем, что информация не организована во что-то цельное - не видно динамики одних и тех же анализов (если бы не ГИПЕРКОНВЕРГЕНТНАЯ МЕДИЦИНСКАЯ ИНФРАСТРУКТУРА (хожу в 3 разных клиники), это можно было бы поручить клинике), не видно взаимосвязей между назначениями врачей, не видно списка необходимых действий. После 30 здоровье превращается в тот ещё легаси проект, который хочется документировать хотя бы на случай потери памяти (я и документирую, в Excel, Obsidian и PlantUML, но это другая история).
  • Работа - всякие доп. соглашения об изменении ЗП.
  • И другие тематические папки.

В какой-то момент среди них затесалась папка "Сканы", но это была ошибка, внутри в итоге прорастает дублирующаяся иерархия. От этой папки я избавился, сохранённые обычные PDF соседствуют со сканированными и это нормально.

Что это дало - теперь я могу найти документ, зная приблизительный период, когда он должен был возникнуть.

Резервные копии

Селфхостинг селфхостингом, а бэкапы никто не отменял. Раз в полгода я пакую весь этот репозиторий в архив, шифрую с помощью GPG и заливаю в публичное облако. Архив сейчас весит около 2гб. Старую версию я просто удаляю. Разумеется у архива тоже в названии YYYY-MM-DD.

Процессы

В конце каждого месяца я разгребаю папки "Входящие" и "Загрузки" в ноль. Zero Inbox, все дела.

2025 - Ускоряемся

-5

Купил NVidia RTX4060Ti 16Gb, поставил Ollama, mistral-small:22b и ocrmypdf, немного посидел с bash-скриптингом, теперь у меня есть скрипт, который на закрытии файла с расширением PDF без "ocr" в названии, в папке Inbox производит распознавание текста в этом PDF.

inotifywait -m . -e close_write --exclude ".*.ocr.*" | магия

Сканирую я прямо туда. Название даю уровня квекве, 123, 413. ocrmypdf сохраняет распознанный текст в plaintext файл через параметр --sidecar.

title="$(echo "Придумай и напиши короткое название для этого файла: $(<$sidecar_file)" | ollama run mistral-small:22b | head -n1)"

Дальше происходит ещё строчек 10 санитарной обработки выхлопа от нейронки, но не в них суть.

На выходе получаю из "123.pdf" - "2025-04-15 - заключение кардиолога.pdf". Где-то в 30% случаев от меня вообще не требуется править название файла.

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

Что это даёт

  1. У меня сократилось время на разбор отсканированного где-то на 30%. Я не доверяю нейронке настолько, чтобы дать ей класть файл в нужное мне место, но подсказка от неё и решение вопроса с датой в правильном формате упрощают разбор. Раньше придумывание названия происходило в процессе сохранения файла из программы для сканирования документов и это было блокирующей операцией. Пока я придумывал названия и ползал по своему архиву в поисках нужной папки - принтер простаивал. Теперь я сохраняю файл за 1-2 секунды и дальше им занимается нейронка. Когда моя стопка неразобранной бумаги заканчивается - я открываю папку с разобранными и подписанными документами, прохожу сверху вниз, даю всем внятные названия по своим правилам, потом прохожусь ещё раз и пачками кладу их в соответствующие папки.
  2. У меня во всех сканах появился OCR слой. Я могу копировать текст с картинки.

Бонусный лайфхак

Я перенёс шредер в комнату, где у меня стоит скамья для жима гантелей. Теперь я шредерю те бумаги, которые приговорены к уничтожению между подходами в упражнениях, пока отдыхаю. Можно сказать, что эта стопка разбирается в фоне.

Следующая статья: