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

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

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

ГГГГ-ММ-ДД чч-мм ННН[ особенность],
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 — это кроссплатформенно, не возникает проблем с шрифтами, ничего не едет. А в случае ноутбука — коллеге не придётся его запускать, чтобы увидеть результаты, ну и с телефона сможет прочесть.