Skip to content

Заглавная страница

Aleksey Andreev edited this page Jul 28, 2013 · 4 revisions

Описание

Программа используется для добавления, редактирования и отображения тегов через опции командной строки. На самом деле теги - это частный случай работы программы. Программа позволяет назначать файлу свойства (атрибуты?) со своим набором значений. Имена и значения пользователь придумывает сам. Например свойство tag со значениями кот, рыба, фото и свойство title со значением Кот украл рыбу.

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

Внимание! Программа не изменяет никаких Ваших файлов, кроме собственного файла в том же каталоге!

Опции

  • -a, --append-value APPEND_LIST - добавление параметров и их значений. Уже существующие для указанных файлов параметры и их значения не изменяются. Формат списка APPEND_LIST смотрите ниже.
  • -c, --create-index - создание пустого индексного файла в текущей директории. Если такой файл уже существует, то новый не создается и программа завершается с ошибкой.
  • -d, --remove-value DELETE_LIST - удаляет указанные значения параметров, если они существуют, целые параметры или вся информация о файле. Формат списка DELETE_LIST смотрите ниже. Если вместо DELETE_LIST указать знак минуса: '-', то в этом случае из индекса будет удалена вся информация о файле, при этом должны отсутствовать опции -a и -s.
  • -f, --fields-list FIELDS_LIST - список полей (колонок) для использования совместно с опцией -l. Формат и значения для списка FIELDS_LIST смотрите ниже. Если вместо FIELDS_LIST указать знак минуса: '-', то в этом случае информация будет выдана во внутреннем формате индекса (см. Формат файла tags.info).
  • -h, --help - выдает помощь на стандартный вывод и успешно завершается.
  • -i, --file-info - отображение краткой информации об указанных файлах на стандартный вывод.
  • -l, --file-list - отображает информацию в виде колонок, разделенных символом табуляции, одна строчка для каждого файла в индексе на стандартный вывод. Список полей в колонках можно определить при помощи опции -f. Если опция -f не определена, то выводится одна колонка со списком файлов. Если при выводе указанное поле отсутствует или пустое, то в этом месте выводится знак минуса.
  • -p, --value-list - отображение итоговой информации об свойствах и их значениях на стандартный вывод.
  • -r, --recursive - рекурсивный обход вложенных каталогов. Должна применяться совместно с опциями -p и -l.
  • -s, --set-value SET_LIST - присваивает указанным параметрам определенный набор значений. Старые значения переписываются, отсутствующие ранее параметры добавляются. Формат списка SET_LIST смотрите ниже.
  • -v, --version - выводит версию программы на стандартный вывод и успешно завершается.
  • -w, --where WHERE_LIST - задает правила фильтрации при обработке индекса. Может использоваться совместно с опциями -a, -d, -s и -l. Формат списка WHERE_LIST смотрите ниже.
  • --move-file OLD_FILE_NAME NEW_FILE_NAME - меняет имя файла в индексе или переносит данные о файле из одного индекса в другой. OLD_FILE_NAME и NEW_FILE_NAME могут содержать не только имя файла, но и путь к нему. Если пути различны, то выполняется перенос данных файла из одного индекса в другой. Если пути совпадают, то производится замена имени файла в индексе. Сами файлы не переносятся и не переименовываются. В случае наличия такого файла в индексе-получателе, операция отменяется и программа завершается с ошибкой.

Примечание: при использовании опций -a, -d, -i и -s необходимо указать один или более файлов.

Примечание: опции -a, -d, и -s могут использоваться совместно.

Формат APPEND_LIST, DELETE_LIST, SET_LIST: param_name=[subval,subval,...][@param_name=...]. param_name - название свойства, описывающего файл. Название может содержать буквы, цифры или другие символы кроме символа '='. subval,subval,... - список значений свойства, разделеные запятой. Можно указать несколько таких групп, в таком случае их необходимо разделять символом '@'.

Формат FIELDS_LIST: field[,field...]. field - название свойства или одно из специальных свойств. То есть это обычный список названий свойств разделенных запятой. Название полей в списке могут повторяться.

Формат WHERE_LIST: Формат списка такой же как у SET_LIST. Алгоритм обработки этого списка работает следующим образом:

  • param_name=value1,value2 эквивалентно param_name имеет значение value1 или value2 или оба значения.
  • param_name=value1@param_name=value2 эквивалентно param_name имеет значение value1 и value2.
  • param_name= означает что param_name отсутствует или пустой (нет значений).
  • param_name означает что param_name присутствует, включая пустое значение.

Специальные свойства: Для вывода некоторых свойств файлов существуют специальные значения:

  • @FileSize - размер файла.
  • @FileName - имя файла.

Примечание: эти свойства можно использовать только в списке FIELDS_LIST.

Типичные примеры использования

tags -c

Создает пустой индексный файл в текущей директории. Это самая первая и обязательная команда, прежде чем начинать заполнять свойства (теги) файлов.

tags -s type=photo@format=jpg *.jpg

Присваивает свойству type значение photo и свойству format значение jpg для всех файлов с расширением jpg. Если файлы отсутствуют в индексе, то они будут добавлены.

tags -a tag=pets -w tag=dog,cat@type=photo *

Добавляет тег pets для всех файлов, у которых есть теги dog или cat.

tags -d - temp.jpg

Удаляет всю информацию о файле temp.jpg из индекса. Сам файл не удаляется.

tags -l -f @FileName,@FileSize,tag -w tag=pets

Отображает имя файла, его размер и теги для всех файловв индексе, у которых есть тег pets.

Примечание: тут под выражением "тег" для простоты понимания подразумевалось некое значение свойства tag. Вы не обязаны использовать именно это свойство.

Дополнительные примеры

Формат файла tags.info