Как именовать файлы, чтобы было удобно

Имена файлов для фотографий

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

ГГГГ-ММ-ДД чч-мм ННН[ особенность],
2023-04-23 16-50 000 гора такая-то.jpeg.

Обычно этого хватает, чтобы быстро найти нужные фотки. Что ещё даёт формат выше, и почему он такой?

  • Бесплатная сортировка по дате и времени: в файловом менеджере всё расположится хронологически.
  • Привычное двоеточие для разделения часов и минут непереносимо между операционными системами, поэтому использован дефис (16-50 vs 16:50).
  • Номер ННН нужен для фото в течение одной и той же минуты. Вместо номера можно писать секунду и миллисекунду, но как по мне, это избыточно и плохо смотрится.
  • Особенность я обычно использую для фото, «изолированным» во времени. Это короткая фраза, чтобы понять, что на фотографии происходит.

Фото я обычно объединяю в директории по годам, а внутри неё некоторые фото объединияю по событию (поездка, праздник и т.п.), указывая хотя бы год:

ГГГГ  и  ГГГГ[-ММ[-ДД]]-событие.

Внутри директорий фото по-прежнему названы в формате как выше. Что делать с новогодними, я пока не решил 🙂

Как быстро переименовать сотни фоток

Для быстрого переименования фотографий и видео есть классная утилита — exiftool. Это консольная программа, которая умеет читать метаданные фотографии (EXIF) и позволяет переименовать файлы. Поддерживает множество форматов. Так я переименовываю jpeg-и.

mkdir copy
exiftool -o copy -P -d '%Y-%m-%d %H-%M %%03.c.%%e' '-filename<CreateDate' *.jpeg

И так переименовываю mov-ы.

mkdir copy
exiftool -o copy -P -d '%Y-%m-%d %H-%M %%03.c.%%e' '-filename<CreationDate' *.mov

Команды отличаются только выбором метаданных: с моего телефона временная метка о создании фотки лежит в CreateDate, а о видео в CreationDate. Всё остальное одинаковое:

  • -o copy предписывает создать копии, чтобы не похерить оригиналы в случае чего;
  • -P предписывает сохранить все метаданные исходников, так мы действительно лишь переименовываем файлы;
  • -d 'fmt' это формат имени файла;
  • -filename<tag указывает из каких меток дёргать информацию для переименования.

На сайте exiftool множество примеров, а документация вполне себе. Вероятно, существует и оконная морда для утилиты, но мне ОК работать из-под консоли.

Чтобы понять, какие метки хранит ваша фотка, подходит команда:

exiftool 'Screenshot 2024-12-03 at 21.15.06.png'

ExifTool Version Number         : 13.03
File Name                       : Screenshot 2024-12-03 at 21.15.06.png
Directory                       : .
File Size                       : 584 kB
File Modification Date/Time     : 2024:12:03 21:15:13+03:00
File Access Date/Time           : 2025:01:26 14:44:23+03:00
File Inode Change Date/Time     : 2024:12:03 21:15:13+03:00
...

Чтобы всё выше работало, нужны оригиналы файлов. Добросовестные соцсети и месенджеры метаданные трут, и правильно делают. А ещё они сжимают файлы. Короче, для личных альбомов просите у близких оригиналы («отправить как документ»).

Имена для заметок и задач

Имя заметки удобно начинать с даты:

ГГГГ-ММ-ДД название,
2024-07-13 созвон с Иван Иванычем,
2024-07-14-python-orm-review.
  • Для ежедневной заметки имя лучше и не придумаешь.
  • Удобно для проектов на работе. Заводите директорию с таким именем, а датой выбираете начало выполнения.
  • Если вы работаете из-под консоли, то смело заменяйте пробелы в на то, что предпочитаете (я за kebab-case, вот почему).

Формат даты, который я использую

В именах файлов выше использован один и тот же формат даты, ISO 8601:

ГГГГ-ММ-ДД,
2024-10-09  →  9 октября 2024-го года.

Почему он?

  • Дату без разделителя тяжело читать (20241009).
  • Файлы с именами, начинающимися как выше, «бесплатно» отсортированы по дате (лексиграфический порядок): что в файловых менеджерах, что при написании скриптов.
  • Привычный жителю России разделитель «точка» конфликтует с разделителем для типа файла (2024.10.09.png).
  • ISO 8601 — международный стандарт, поэтому велика вероятность, что та или иная программа его распознает.

Имена файлов для книг, статей и публикаций вообще

У меня много литературы в электронном виде, и я стараюсь использовать Zotero как библиотеку (инфотеку). Но без него, я не нашёл способа именовать книги или статьи лучше, чем так

фамилия - год - часть названия,
фамилия и фамилия - год - часть названия,
фамилия и др. - год - часть названия.

Т.е. указывать фамилии авторов, год публикации и часть названия. Например,

Головаль - 2024 - LaTeX в 2024 году.pdf,
Voskov and Tchelepi - 2012 - Comparison of nonlinear formulations.pdf,
Григорьев и др. - 2017 - Обзор работ по теории фильтрации.pdf.
  • Мне проще ориентироваться по фамилиям авторов, поэтому они в начале.
  • Двух или трёх авторов могу написать целиком, а при большем числе авторов оставляю фамилию только первого («фамилия и др.»)

В том же формате я сохраняю презентации с митингов или ноутбуки коллег, но указываю год и месяц:

Иванова - 2024-09 - Как пользоваться докером.pdf,
Petrov - 2024-08 - Linear algebra in numpy.ipynb.

Сам же презентации и ноутбуки обычно дублирую в pdf — это кроссплатформенно, не возникает проблем с шрифтами, ничего не едет. А в случае ноутбука — коллеге не придётся его запускать, чтобы увидеть результаты, ну и с телефона сможет прочесть.

Как именовать десятки документов?

Когда я защищал диссертационную работу, нужно было собрать 20+ документов. Составить, согласовать, распечатать, подписать и сдать. На сайте диссовета ОИВТ РАН был список документов и шаблоны (за что им огромное спасибо). В итоге я именовал все документы почти как в их списке. И это оказалось удобным.

01-диссертация.pdf
02-заявление-соискателя.docx
02-заявление-соискателя.pdf
02-заявление-соискателя-скан.pdf
03-анкета-отдел-кадров.docx
03-анкета-отдел-кадров.pdf
04-диплом-магистра.pdf
05-удостворение-о-сдаче-кандидатских-экзаменов.pdf
06-заключение-семинара.docx
06-заключение-семинара.pdf
06-заключение-семинара-скан.pdf
07-заключение-организации.docx
07-заключение-организации.pdf
07-заключение-организации-скан.pdf
08-характеристика-соискателя.pdf
08-характеристика-соискателя-скан.pdf
09-отзыв-научного-руководителя.pdf
09-отзыв-научного-руководителя-скан.pdf
...

Главное, что у каждого файла есть номер. Так файл остаётся на своём месте, и его легко найти, когда возвращаешься к этому списку снова и снова, в течение 2-3 месяцев. Сначала здесь появляются исходники, оформленные в ворде (docx), затем их версии для печати (pdf) и подписанные сканы (-скан.pdf). И они все лежат рядышком. Нумерация мне помогала и в переписке: с диссоветом, научным руководителем и оппонентами.

Иногда один пункт из списка диссовета подразумевал несколько документов, например, отзывы. В этом случае я добавлял к номеру букву.

23a-отзыв-ведущая-организация.pdf
23b-отзыв-оппонент-такой-то.pdf
23c-отзыв-оппонент-другой-то.pdf

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

Саму идею с нумерацией я увидел где-то в интернетах и тогда усмехнулся, мол, фигня какая-то. А оказалось, что это работает.

P.S. Почему я использую дефисы в именах файлов, можно почитать здесь.