Предпочтительный формат имен файлов, которые включают метку времени

Моим фаворитом является FreeBSD. Ваш пробег может варьироваться.

16
задан 20 July 2011 в 03:26
5 ответов

Похоже, у вас не включена поддержка расширенных атрибутов в файловой системе. Возможно, вам потребуется включить его в ядре или смонтировать с параметром xattr. В системах redhat, похоже, вам не нужно явно устанавливать этот флаг, тем не менее, gentoo здесь может отличаться.

формат
  • немного проще для непрофессионала (против 1. и 2.)
  • нет новых символов (против 2.)
  • Я неравнодушен к 1., так как это полностью IAW стандарт, но другие близки.

    Примечание: Конечно, добавляйте секунды по мере необходимости. ... и да, с секундами (или даже минутами) или без них - это все IAW ISO 8601. :)

    19
    ответ дан 2 December 2019 в 20:42

    Я не включал бы часовой пояс, только использовать всемирное время. Если может быть беспорядок, Вы могли бы добавить - суффикс UTC. Если Вы указываете часовой пояс, кто-то может зависеть от него. И были бы странные пограничные случаи, где изменения DST или сдвиги DST наносят ущерб некоторой обработке, или обработка отличается в некоторых системах, потому что их конфигурация DST не актуальна. UTC всегда является тем же везде.

    Я действительно думаю, что дефисы делают имя файла более читаемым, в том смысле, что оно помогает различить дату и время данных файла. Если Вы хотите включать подвторую точность, которая обычно является .nnnnn.

    Мне лично не нравится T. Используя двоеточие в имени файла может влиять на совместимость с другими файловыми системами.

    2
    ответ дан 2 December 2019 в 20:42
    1. Я также не включал бы часовые пояса. Ваши сценарии/инструменты, которые обрабатывают журналы, должны знать об этом. Также в отношении летних/зимних изменений времени - я рекомендовал бы сохранить Ваш сервер всегда чинившимся в UTC все время. Внезапное различие между основным часовым поясом сервера и (неизменным) часовым поясом базы данных, работающей на нем, может привести к головным болям ;-).

    2. Относительно именования файла журнала - я знаю, многим не нравится оно, но мне нравится сохранять его простым:

    p-%s-type.log = p-1311116459-type.log

    профессионалы:

    • общий знаменатель
    • очень простой в использовании в дальнейших сценариях

    недостатки:

    • не человекочитаемый

    На машинах, где коллеги (по любой причине) должны проверить журналы вручную, я пошел для этого варианта, вращаясь ежедневно:

    p-%Y-%m-%d-type.log = p-2011-07-20-type.log

    С уважением

    -1
    ответ дан 2 December 2019 в 20:42

    Что бы это ни стоило, это формат, в котором работает утилита скриншотов. scrot использует по умолчанию для имени файла (т.е. когда имя файла не указано указано):

    %Y-%m-%d-%H%M%S_$wx$h_scrot.png
    

    Части, использующие %, являются стандартными спецификаторами формата strftime(3) , $w — ширина изображения, а $h — высота изображения.

    Пример:

    $ scrot
    $ find *.png
    2020-03-07-152236_1920x1080_scrot.png
    

    Для временных меток UTC:

    $ TZ=UTC scrot
    $ find *.png
    2020-03-07-152236_1920x1080_scrot.png
    2020-03-07-183257_1920x1080_scrot.png
    

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

    Источник:

    if (!opt.output_file) {
      opt.output_file = gib_estrdup("%Y-%m-%d-%H%M%S_$wx$h_scrot.png");
      opt.thumb_file = gib_estrdup("%Y-%m-%d-%H%M%S_$wx$h_scrot-thumb.png");
    } else {
      have_extension = scrot_have_file_extension(opt.output_file);
    }
    
    0
    ответ дан 7 March 2020 в 17:57

    Отсутствие разделителя между компонентами делает его похожим на случайные числа или просто на огромный счетчик.

    Colon — это убийца, поскольку его нельзя использовать в системах Windows (и, следовательно, нельзя использовать на смонтированном общем ресурсе SMB, который иногда является единственным доступным сетевым протоколом), и он имеет неожиданные побочные эффекты в macOS, несмотря на то, что это система UNIX: файловая система отлично подходит для двоеточия, но Finder отображает его как косую черту (/) — это имеет исторические причины (историческое двоеточие использовалось в качестве разделителя компонентов пути на Mac и, таким образом, чтобы все пути выглядели одинаково в macOS система сопоставит двоеточие с косой чертой; хороший побочный эффект, вы можете использовать косую черту в именах файлов, так как они отображаются на двоеточия).

    Все тире также сбивают с толку.

    Для времени вы можете использовать подчеркивание, точку, запятую или процент (все файловые системы разрешают проценты, и это не имеет значения в bash/sh/zsh само по себе, это уродливо только в URL-адресах, поскольку требует экранирования). Ни один из них не требует экранирования в оболочке. Или вы можете использовать точку с запятой, которая ближе всего к двоеточию, но требует экранирования в оболочке.

    И соглашение, которому почти все следуют, звучит так: «Если часовой пояс не указан, это UTC», и, как правило, сохранение всех времен всегда в формате UTC упрощает работу с ними. При необходимости их всегда можно преобразовать в локальные метки времени.

    0
    ответ дан 1 April 2021 в 01:28

    Теги

    Похожие вопросы