LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Да. С той лишь разницей, что при таком подходе каталоги — они и не папки вовсе, а именно метки (тэги).

Не очень понял, потому уточню. Я писал не про те каталоги, которые содержат ссылки (каталоги-теги), а про «обычные».

То есть вы хотите одновременно использовать и метки и вложенные папки? А не запутаетесь?

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

Ну, если хранить теги в ключах xattr, то не вижу никаких препятствий.

А можно поподробнее? xattr(7) — это записи типа поле — значение, привязанные к каждому отдельному файлу? Какое тут дерево?

Что дает повод задуматься — так уж ли [вложенные метки] нужн[ы].

Пока тоже не понятно, зачем это может понадобиться.

Справедливости ради, мне понадобилось. Я так храню личную фотовидеотеку, и там помимо меток по событиям и по персонажам есть еще даты и места. Даты вложены все (то есть, например, не 2015-12-31, а 2016/12/31), а места — некоторые (какая-нибудь Болгария/Варна). Но ни то, ни другое естественным образом двояковложенным быть не могут, так что проблемы нет.

В смысле, что операция cp ~/file /mnt/disk/
не создаст метку на новой файловой системе.

Обратите внимание, что такой приказ еще и дату изменения похерит. Поэтому его в любом случае использовать надо осторожно.

Для копирования всей (или существенной части) картотеки можно использовать:

$ rsync -aH ~/photos/ /media/Z320G/

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

А mv ~/file /mnt/disk/ ещё и оставит содержимое файла на старой ФС.

Так это ж правильно.

Если вы захотите удалить файл уже после того, как назначили ему кучу меток, то, к сожалению, в отличие от NTFS, где в инодах хранятся обратные ссылки, в ext* остается только делать полный перебор:

$ find ~/photos/ -xdev -samefile IMG_20161107_104422.jpg -delete

Если все ссылки лежат в одной папке-теге, то не ясно, что делать с файлами, имеющими общее имя.

Вероятно то же, что вы делаете, когда вам надо положить одноименные файлы в один каталог-папку — переименовывать, что же еще.

Логично, что надо хранить ссылки в структуре каталогов, подобной той, в которой хранится «оригинальный» файл.

А что такое «оригинальный файл»? Все ссылки равноправны.

Исходная версия Zmicier, :

Да. С той лишь разницей, что при таком подходе каталоги — они и не папки вовсе, а именно метки (тэги).

Не очень понял, потому уточню. Я писал не про те каталоги, которые содержат ссылки (каталоги-теги), а про «обычные».

То есть вы хотите одновременно использовать и метки и вложенные папки? А не запутаетесь?

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

Ну, если хранить теги в ключах xattr, то не вижу никаких препятствий.

А можно поподробнее? xattr(7) — это записи типа поле — значение, привязанные к каждому отдельному файлу? Какое тут дерево?

Что дает повод задуматься — так уж ли [вложенные метки] нужн[ы].

Пока тоже не понятно, зачем это может понадобиться.

Справедливости ради, мне понадобилось. Я так храню личную фотовидеотеку, и там помимо меток по событиям и по персонажам есть еще даты и места. Даты вложены все (то есть, например, не 2015-12-31, а 2016/12/31), а места — некоторые (какая-нибудь Болгария/Варна). Но ни то, ни другое естественным образом двояковложенным быть не могут, так что проблемы нет.

В смысле, что операция cp ~/file /mnt/disk/
не создаст метку на новой файловой системе.

Обратите внимание, что такой приказ еще и дату изменения похерит. Поэтому его в любом случае использовать надо осторожно.

Для копирования всей (или существенной части) картотеки можно использовать:

$ rsync -aH ~/photos/ /media/Z320G/

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

А mv ~/file /mnt/disk/ ещё и оставит содержимое файла на старой ФС.

Так это ж правильно.

Если вы хотите удалить файл, то, к сожалению, в отличие от NTFS, где в инодах хранятся обратные ссылки, в ext* остается только делать полный перебор:

$ find ~/photos/ -xdev -samefile IMG_20161107_104422.jpg -delete

Если все ссылки лежат в одной папке-теге, то не ясно, что делать с файлами, имеющими общее имя.

Вероятно то же, что вы делаете, когда вам надо положить одноименные файлы в один каталог-папку — переименовывать, что же еще.

Логично, что надо хранить ссылки в структуре каталогов, подобной той, в которой хранится «оригинальный» файл.

А что такое «оригинальный файл»? Все ссылки равноправны.