Как устроена моя файловая система

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

Проблема -- трудно обустроить свой архив еще потому что люди по инерции воспринимают его как иерархическую систему, дерево. Это по инерции копируется с физического мира. Дом, комната, шкаф, полка. Библиотека. Бумажная картотека. Фонотека. Магаз, супермаркет, музыкальный/книжный магаз. Люди думают что файловую систему тоже нужно обустроить иерархически.

НЕТ! Потому что классифицировать трудно и неудобно и далеко не всегда возможно.

Есть выход куда проще.

Когда-то давно был хостинг фоток flickr. Там можно было вешать тэги на фотки. Часто -- год, место, ник человека, чье лицо присутствует на фотке. И там можно было найти все фотки где есть несколько тэгов одновременно.

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

Затем я пробовал разные поисковики по локальной файловой системе, но ничего не понравилось. У меня просто список файлов, которые я генерю командой "find /" Список файлов потом grep-аю:

cat list | grep Вася | grep Петя | grep 2008 | grep такой-то_кабак
И не важно где лежат эти фотки! Я могу их перекладывать с места на места сколько угодно раз! И я очень легко могу с пол-оборота узнать, какие фотки у меня есть за 2008-й год, где есть Маша и Петя? И в каких кабаках или местах это было сфоткано? Получаются длинные имена директориев, это да. Ну и пусть.

Так я могу найти у себя что угодно менее чем за минуту, и это у меня куча компов, серваков, гаджетов, всяких архивов и бекапов, всё вместе, возможно, около 40 терабайт. (Во всяком случае в самом жирном моем серваке у меня 4 винта по 16TB и мне этого почти впритык.)

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

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

Когда-то очень давно я юзал CP/M, она отличалась от DOS-а еще и тем, что там не было директориев, т.е., все файлы на дискете были свалены в кучу. И ничё, жили же как-то.

Далее -- у меня очень большой архив музыки. Если я не могу упомнить, в каком жанре-стиле кто играет, добавляю файлик с именем 'tag стиль'. А у прог-рокеров и джазменов часто бывает так, что они играют друг с другом в неожиданных комбинациях и составах. Опять же, в директории с mp3 или flac создаю пустые файлики вроде 'tag имя-музыканта'. Потом, если накатит настроение, переслушать все альбомы где играл такой-то музыкант, я могу найти их все за 10 секунд и переложить в другое место и/или залить в плеер или мобилу. У каждого альбома у меня файлик-закладка, на каком треке я бросил слушать. Файлики-отметки, какие треки мне понравились, а какие очень не понравились. (Как это часто бывает, во всяком альбоме 1-2 хороших трека/песни.) И файлики где отмечается дата, когда я переслушивал альбом полностью или частично. Найти альбомы которые я давно не переслушивал я могу за 1 минуту и даже написал для этого скрипт. И те, которые мало переслушивал. И те, которые слишком много переслушивал. И те, которые я мало переслушивал, но там было отмечено более 2-3 любимых треков, например. И те, которые вообще еще не слушал. И те, которые давно не слушал, в определенном жанре, если есть настроение именно для этого жанра.

Архив книг у меня тоже очень большой. У тех книг что я время от времени читаю, файлики -- номер страницы где закладка, список страниц где всякое интересное, файлик с названием издательства, год издания, темы поднимающиеся в книге. Файлики с ФИО авторов-соавторов. Файлик с моей оценкой книги (насколько сильно она мне "заходит", как это сейчас говорят). Файлик с датой, когда я читал эту книгу и/или закончил её читать -- похожая идея была у А.Любищева (Даниил Гранин «Эта странная жизнь»), но у меня проще все.

Стоит ли говорить, насколько быстро я могу найти все книги на определенную тему, младше такого-то года. Причем, не важно где они все лежат -- библиотеку я постоянно реорганизовываю, тасую, часть книг у меня в гаджетах. Иногда книга надоедает, бросаю, иногда возвращаюсь к недочитанной. Почти у всех книг есть текстовая версия, которую легко grep-ать. Плюс wordcloud-ы: 1, 2, 3.

И у музыкального архива (фонотеки) и у библиотеки файлики со ссылками на wikipedia, goodreads, discogs.com, прочие сайты.

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

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

Резюме -- если у файла или директория или в директории есть тэги, всё равно где всё это валяется. Лишь бы у вас был список файлов всей вашей файловой системы и/или поисковик по ней. И порядок наводить не надо! (Можете только удалять то, что вам уже не нужно.)

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

Всё описываемое мною возможно даже на самых маленьких и старых носителях и компах.

Всё то же самое адаптируется с мелким заметкам, прогам, проектам, итд...

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

Некоторые люди говорят "вот только я сейчас вспомню, где это у меня лежит..." А мне не нужно запоминать, где у меня что лежит. (И мучительно вспоминать, как следствие, мне тоже не нужно.)

У С.Вольфрама, которого я скорее уважаю чем нет, система иерархическая, и для меня это дико. Например, он разделил свою книгу New Kind of Science по главам и файлО хранит по главам: For example, during the period from 1991 to 2002 when I was writing my big book A New Kind of Science, a substantial part of my filesystem was organized simply according to sections of the book: ХЗ, как он это делает, если бы я зараннее мог знать сколько у меня будет глав, что будет в каждой, итд. Да кто же может такое планировать? Не знаю. Ну ему виднее.


Ссылки в файловой системе делать легко. Но не средствами Unix-а -- symlink-и быстро приходят в негодность если таскать файлО с места на место. Всё проще, в одном директории создаете файл вроде 'tag <uuid>', в другом 'see also <uuid>'. Требуемый uuid ищете в списке файлов grep-ом.

(the post first published at 20241017.)


List of my other blog posts.

Subscribe to my news feed,

Yes, I know about these lousy Disqus ads. Please use adblocker. I would consider to subscribe to 'pro' version of Disqus if the signal/noise ratio in comments would be good enough.