amarao (amarao_san) wrote,
amarao
amarao_san

теория файлового менеджера

Я осознал важный тезис для формулировки различия файлового менеджера от шелла.

Шелл рассчитан на осмысленные имена файлов и (условно) FHS. Когда ЗНАЕШЬ где и какой файл лежит. И что этот файл имеет разумное имя, и отличается от окружающих разумно.

Совершенно нелепо ходить в /etc файловым менеджером (и чуть ниже я опишу кто и когда это делает).
Однако, ходить в anime/incoming БЕЗ файлового менеджера - ещё большая глупость. Потому что там нет FHS, там нет никакой идеологии именования, там файлопомойка.

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

Вот быстрый пример из incoming:

[Conclave-Mendoi]_Mobile_Suit_Gundam_00_S2_-_12_v2_[1280x720_H.264_AAC][9F43D77D].mkv
cor.ova.guy.double.target
[Crustyroll]Skip Beat - 22 [1280x720][h264].mkv
[Crustyroll]Skip Beat - 22 [704x396][XviD][LoReZ].avi

Что общего у этих файлов и каталогов? НИЧЕГО. Структура имён хоть и разумна, но произвольна и явно не рассчитана на набор с клавиатуры.

Файловый менеджер предоставляет следующие логические абстракции для операций с файлами:
ЭТОТ ФАЙЛ
ЭТИ ФАЙЛЫ (выделение, множество для "ЭТОТ ФАЙЛ" с неформальным критерием подборки)
СЛЕДУЮЩИЙ (ПРЕДЫДУЩИЙ) ФАЙЛ, при этом критерий легко меняется на ходу и абстракция показывается относительно ЭТОГО ФАЙЛА
ТОТ КАТАЛОГ (без уточнения в какой, находящийся на ДРУГОЙ ПАНЕЛИ).
ВОКРУГ ЭТОГО ФАЙЛА (примитив работы с readdir выдающий ограниченный список файлов находящихся в окрестности ЭТОГО ФАЙЛА).
ДОБАВИТЬ В "ЭТИ ФАЙЛЫ" - операция добавления в список для обработки (запоминание в очереди)

Шелл не предоставляет абстракции "ЭТОТ ФАЙЛ", он позволяет работать только либо:
а) с конкретным файлом зная его имя
б) с выборкой из всех файлов каталоге (каталогах), сформированному по заранее заданному критерию (маски, find -print0|xargs -0 и т.д.).

Заметим, что FHS подразумевает, что абстракция "этот файл" не нужна — пользователь точно знает, что ему нужен файл /etc/fstab, а все файлы вокруг него не интересны (и даже смотреть на них не нужно). Так что использование абстракций файлопомойки для работы с FHS - признак дурного тона. Ровно так же, как использование шелла (рассчитанного на FHS) для работы с файлопомойкой - признак необоснованного красноглазия.
Subscribe

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…