LINUX.ORG.RU
ФорумTalks

Идеи по иерархии и именованию файлов?

 , ,


1

2

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

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

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

Интересующие принципы иерархичности: удобная и понятная иерархия, позволяющая быстро и интуитивно найти нужный файл без прибегания к средствам поиска. Например нужно ли делать дерево каталогов с большой глубиной или же с малой, но размещая в каждой директории множество файлов? Как решать вопрос, когда по смыслу файл подходит в два места каталога? Вручную прокидывать сим/хардлинки? Стоит ли складывать все файлы, доступ к которым хотелось бы иметь из-под разных пользователей/ОС (музыка, фильмы, книги) вне /home или же всё-таки класть в /home и chmod'ом расшаривать доступ?

Принципы именования: быстрое нахождение файла как при работе в файловом менеджере, так и в консоли, удобочитаемость, пригодность для массовой обработки утилитами. Именовать файлы по-русски или по-английски? В каких случаях разделять слова подчёркиваниями, а в каких дефисами? Как быть с файлами, полученными через торренты, которые обычно хочется переименовать/переместить, но при этом сохранить файл на раздаче? Опять же вручную прокидывать линк? Чуть ли не самый важный вопрос: как писать комментарии к файлам на уровне файловой системы? Создавать текстовый файлик и класть его рядом с файлом? Но для этого придётся каждый одиночный файл прятать в отдельную директорию, чтобы комментарий был рядом. Как решить вопрос с отображением комментария напротив файла в команде ls -l? Писать свой враппер-велосипед?

Хотелось бы решить эти вопросы максимально просто, изящно и быстродейственно без всяких семантических десктопов.



Последнее исправление: D_Lans (всего исправлений: 2)

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

Kindly_Cat
()
Ответ на: комментарий от Kindly_Cat

Поэтому лучшим методом будут каталоги по типам (видео, музыка, графика), а в них - по темам (группы, жанры и так далее).

Приведи пример, чтобы было нагляднее.

D_Lans
() автор топика

Раз никто ещё не написал, то напишу я. Поищи на тему файловых систем на тегах. Я как-то хотел таким заняться для мультимедии, но ниасилил. Как теперь обстоят дела в этой сфере не знаю. Может, местные аналитики поделятся историями успеха.

d ★★★★
()

категории в таком деле не катят. только тэги, только такой фс, что вместо директорий тэги имеет, я не знаю

xsektorx ★★★
()

Как то встретил рекомендацию, что следует для большей безопасности ценных данных применять такое соглашение именования которое наименее ценные данные подставляет под «удар» первыми.

У меня например обычно сортировка по типу, а затем по имени. И по этому у меня выглядит следующим образом список:

  • _dwnld
  • _musik
  • _vm
  • docs
  • foto

Конечно, это скорее ещё одна защита от дурака. Но мне кажется лишней не будет.

leonidko ★★★★
()

для работы с контентом файловые системы ненужны. Нужны метки: выбрал я «2011» год - отобразились все документы за 2011 год, выбрал «металлолом» - отразились все документы по металлолому за 2011 год, вбираю «Краснодар» - отражаются все документы по металлолому в Краснодаре в 2011 году

cuki ★★★★
()
Ответ на: комментарий от Kindly_Cat

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

xsektorx ★★★
()
Ответ на: комментарий от xsektorx

один файл к двум категориям отнести нельзя

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

при изменении оригинального файла, файл по хардлинку, насколько мне помнится, останется неизменным

Нет, он изменяется. Хардлинк это всего лишь ещё одно имя файла, все они ссылаются в один файл.

хардлинки не катят потому что работают в пределах одной фс

Вот это да, это недостаток. Существенный.

Kindly_Cat
()

Теги противоестественны и не нужны. Нужно

делать дерево каталогов с большой глубиной

buddhist ★★★★★
()
Ответ на: комментарий от cuki

для работы с контентом файловые системы ненужны. Нужны метки: выбрал я «2011» год - отобразились все документы за 2011 год, выбрал «металлолом» - отразились все документы по металлолому за 2011 год, вбираю «Краснодар» - отражаются все документы по металлолому в Краснодаре в 2011 году

поздравляю, вы изобрели семантический десктоп

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от buddhist

а куда предлагаешь, например, фильмы засовывать, в которых к примеру есть и драма и комедия? в какую директорию?

xsektorx ★★★
()

1. Симлинки. Сложность в их контроле. 2. Тегирование. Сложность в заполнении этих тагов, а если файлов дофига...

Решения уже имеются в конечном софте: плееры, библиотеки и т.п. В итоге единственный путь для тебя - написать плагин для mc, far и т.п. :)

Up: есть еще решение - своя файловая система, но думаю, ты не осилишь.

gh0stwizard ★★★★★
()
Последнее исправление: gh0stwizard (всего исправлений: 1)
Ответ на: комментарий от Kindly_Cat

дело только за созданием удобного интерфейса для работы с линками

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

xsektorx ★★★
()

Удобным является то, к чему ты привык. Как в интерфейсе, так и в файловой системе. Даже если ты называешь каталоги md5-хешами самого большого файла в них, за пару недель ты будешь в них ориентироваться за секунды.

vurdalak ★★★★★
()

Вообще нынешная система расположения файлов уже является законченным решением задачи как хранить и отображать файлы. Твоя же задача создать совершенно другую модель отображения файлов. Как хранить, отображать и искать документы уже известно - ищи работы по поиску документов в сети интернет (каталоги, поисковики и т.п.). Таких работ масса. Смысл один и тот же, только объекты разные (вебсайты vs файлы).

Можно начать с патчинга любой fs: всего-то добавить несколько своих полей в таблицу метаинформации файла, а также создать индексирующий движок. Потом пропатчить библиотеки, к которым обращается другой софт вроде mc, ls и т.п. А авторы последних в свою очередь сами все пропатчат.

gh0stwizard ★★★★★
()

я тоже когда-то парился этим вопросом. Потом забил. Теперь у меня просто Musik, Video, Downloads, Documents, а все остальное в ~.

файлы именую по-русски, если название русское, по-английски, если английское и по-немецуи, если немецкое.

слова разделяю пробелами.

Часто пользуюсь locate.

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

dikiy ★★☆☆☆
()
Ответ на: комментарий от gh0stwizard

Можно начать с патчинга любой fs: всего-то добавить несколько своих полей

Так у ext* уже сто лет есть расширенные атрибуты. Чем не катит?

ls-h ★★★★★
()
Ответ на: комментарий от xsektorx

а куда предлагаешь, например, фильмы засовывать, в которых к примеру есть и драма и комедия?

В /dev/null

buddhist ★★★★★
()
Ответ на: комментарий от gh0stwizard

Решения уже имеются в конечном софте: плееры, библиотеки и т.п

А вот решений на уровне системы почти что нет. Ситуацию в порядок приводит только семантический десктоп. Если учесть, что в KDE программы сами не играют музычку и не открывают ODT, а задействуют kdelibs, то вообще не возникнет вопроса вроде.

Теги и оценки ставятся автоматически на основе совершенно посторонних действий пользователя вроде нажатия кнопочки переключения на следующий трек на клавиатуре - причём речь идёт не просто о +-1 при каждом переключении.

quiet_readonly ★★★★
()

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

На часть все-таки отвечу:

Например нужно ли делать дерево каталогов с большой глубиной или же с малой, но размещая в каждой директории множество файлов?

С удобной/естественной тебе, очевидно же. Удобная мне кому-то глубока, кому-то недостаточна.

Как решать вопрос, когда по смыслу файл подходит в два места каталога? Вручную прокидывать сим/хардлинки?

В два разных каталога? Пришла пора пересмотреть иерархию, че тут. А то бардак будет, в голове, ФС и делах.

Стоит ли складывать все файлы, доступ к которым хотелось бы иметь из-под разных пользователей/ОС (музыка, фильмы, книги) вне /home или же всё-таки класть в /home и chmod'ом расшаривать доступ?

На сетевую шару или нечто с ней синхронизируемое :) Когда ты это захочешь синхронизировать себе на новый ноут/мобильник/планшет/что-сейчас-еще-в-моде, попомнишь мои слова, дуалбутчик.

Chmod'ом расшаривать доступ --- сам-то пробовал? Тут целый bindfs нужен, тормозный, кстати, донельзя.

Выбирая из твоих вариантов - вне /home очевидно и на отдельный раздел, т. к. в .../корень_одной_из_систем/home лежат пользователи конкретной системы, а ты предлагаешь туда поместить файлы, по логике принадлежащие аж к пользователям разных СИСТЕМ. Lanyardfs как раз анонсировали, чтобы bindfs не юзать.

Как быть с файлами, полученными через торренты, которые обычно хочется переименовать/переместить, но при этом сохранить файл на раздаче? Опять же вручную прокидывать линк?

Не выпендриваться, а копировать куда нужно, туда где всё это будет использоваться, синхронизоваться и бэкапится. Хочешь оставлять раздаваться --- оставляй копию, не хочешь --- не оставляй. Линк только навредит, все равно там теги поправишь или еще что.

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

Зачем?.. Лобовое решение:

A_file_that_needs_a_comment_for_some_lame_reason.img_inside.abiword.gz и A_file_that_needs_a_comment_for_some_lame_reason.img_inside.abiword.gz.COMMENT

Да и часто ли надо комментировать одиночные файлы? И файлы вообще? Путь к файлу --- вот лучший к нему комментарий.

Как решить вопрос с отображением комментария напротив файла в команде ls -l? Писать свой враппер-велосипед?

Порвать, завязать, телефон дилера выкинуть, друзей просить пристрелить, если сорвешься. Комментарий к файлу это еще ладно, но такой вопрос и ставить-то не надо, не то что решать, dear Mr. Poettering.

t184256 ★★★★★
()

Добро пожаловать в наш клуб!

Хорошей литературы не нашел. Вот вот измышления:
1. Если много файлов, то система структурированного дерева каталогов - плохой инструмент для хранения файлов. Даже с хардлинками/симлинками. Нужна система тегов.
2. Главное правило при хранении информации - осмысленное название, потому как самый эффективный алгоритм поиска таков: 1) заходишь вручную на 1-2 уровня иерархии (например, data/docs), а потом поиском находишь то, что конкретно тебе нужно.

Что использую я:
- Я придумал нормальную структуру каталогов для софта, домашнего каталога, фотографий (здесь уже есть вижу пути улучшения). Критерий нормальности: 1) быстро нахожу то, что ищу; 2) нет эффекта когда добавляешь новые файлы, а потом узнаешь, что они у тебя уже есть (лет 5 назад уже зкачивал), но они лежат в другом месте.
- Я начинаю использовать систему тегов для данных; это пока в зачаточном состоянии, но уже приносит плоды - находить намного проще.
- При размещении фоток активно использую хардлинки. Для этого есть облегчалка для mc. Могу поделиться.

Но, конечно, тем открыта. Присматриваюсь к расширенным атрибутам, но у них отвратительная поддержка, поэтому пока рано.

Kroz ★★★★★
()
Ответ на: комментарий от leonidko

для большей безопасности ценных данных применять такое соглашение именования

Такое ощущение, что это рецепт из журнала домохозяек. Ржака.

aidaho ★★★★★
()
Ответ на: комментарий от StReLoK

Оба варианта чуть менее чем полностью бесполезны. Только память жрут.

обоснуй.

dikiy ★★☆☆☆
()

быстрое нахождение файла

Подтверждается опытом знакомых, которые за секунды находят нужное, следующая система именования

├── !!!фотографии
├── !!фоточки
├── !фотки
├── 1
│   └── StarCraft1
├── 2
│   └── !посмотреть!
└── 3
    └── привезённое

backbone ★★★★★
()

помойка лучше всего

thunar ★★★★★
()
Ответ на: комментарий от Kindly_Cat

Зачем хардлинки на каталоги?

А как ты собираешься теггировать каталоги? Допустим музыкальные альбомы.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Допустим музыкальные альбомы

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

xsektorx ★★★
()
Ответ на: комментарий от DNA_Seq

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

xsektorx ★★★
()

/home/denis

/home/denis/Видео

/home/denis/Видео/Порно

Ну и так далее, чего мудрить-то?

PolarFox ★★★★★
()
Ответ на: комментарий от xsektorx

потэгать каждый файл именем альбома

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

DNA_Seq ★★☆☆☆
()
+bin
+Archive (свалка для всего?)
+Books (шо с регистрами?)
  |- Comp
  |- Hudlit
  |- Science
  |- ...
+Documents (специфику в субдир, остальное в главную)
  |- Linux
       pulseaudio-is-working-for-me.txt (UTF-8, 80 символов?)
       Pulseaudio-is-working-for-me.txt
       pulseaudio_is_working_for_me.txt
       Pulseaudio_is_working_for_me.txt
       pulseaudio.is.working.for.me.txt
       Pulseaudio.is.working.for.me.txt
       pulseaudio is working for me.txt
       Pulseaudio is working for me.txt
       Pulseaudio Is Working For Me.txt
       (какой из этих вариантов лучше?)
       (а шо делать с регистром вообще хз)
  |- Work
  | ... основные файлы (спорно)
+Download
+Images
  |- Home
      |- Category
           |- 2001_01_01
           |- ...
  |- Internet
  |- Selected
+Music
  |- Category
      |- ...
+Projects
  |- velosiped-1.01
+Videos
  |- Category
      |- ...
FiXer ★★☆☆☆
()

Как быть с файлами, полученными через торренты, которые обычно хочется переименовать/переместить, но при этом сохранить файл на раздаче?

Пользоваться торрент клиентом, который умеет перемещать файлы

goingUp ★★★★★
()

>как писать комментарии к файлам на уровне файловой системы?
user_xattr [pokerface.png]

>Например нужно ли делать дерево каталогов с большой глубиной или же с малой, но размещая в каждой директории множество файлов?
Нужно делать столько, сколько достаточно на данный момент. Как только глубины окажется мало — добавишь и переместишь нужные файлы куда надо. Серьёзно. Ну а так, категория/раздел/жанр и/или автор (в зависимости от). Далее, если нужно, добавляешь разделы для частей или сезонов, если они есть, потом можно и персонажей, если вдруг такая нужда. Было бы желание и необходимость.

Deleted
()

проблема древовидной иерархией не решаема. надо переходить на графовидную структуру данных.

olegsov
()

У меня как-то больше возникал вопрос с образованием килотонн файлового дерьма в директориях downloads и desktop (использую как рабочую директорию), которое имеет случайные имена, лежит в каких попало поддиректориях разного уровня вложенности и имеющих тоже произвольные названия. После полугода работы очень сложно разобраться во всем этом счастье, потому что выкинуть жалко (некоторые вещи могут оказаться нужными в будуещем), а сортировать очень геморно. В итоге решил проблему скриптом для автоматической подчистки downloads (удаляет файлы и директории, к которым небыло доступа более трех суток) и более организованной работой в desktop с переносом готовых наработок в директорию-архив. Это конечно больше вопрос самоорганизации, но я не видел еще ни одного хомяка, в котором не было бы срача.

m0rph ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.