-
Notifications
You must be signed in to change notification settings - Fork 0
Заглавная страница
Программа используется для добавления, редактирования и отображения тегов через опции командной строки. На самом деле теги - это частный случай работы программы. Программа позволяет назначать файлу свойства (атрибуты?) со своим набором значений. Имена и значения пользователь придумывает сам. Например свойство 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
. Вы не обязаны использовать именно это свойство.