{"id":35687,"date":"2019-10-31T22:05:46","date_gmt":"2019-10-31T19:05:46","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\/"},"modified":"2019-10-31T22:05:46","modified_gmt":"2019-10-31T19:05:46","slug":"kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","title":{"rendered":"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>La classification des donn\u00e9es est en soi un sujet int\u00e9ressant pour la recherche. J'aime collecter les informations qui semblent n\u00e9cessaires et j'ai toujours essay\u00e9 de cr\u00e9er des hi\u00e9rarchies logiques de r\u00e9pertoires pour mes fichiers. Un jour, dans un r\u00eave, j'ai vu un beau et pratique programme pour attribuer des \u00e9tiquettes aux fichiers, et j'ai d\u00e9cid\u00e9 qu'il ne pouvait pas en \u00eatre autrement.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"problema-ierarhicheskih-faylovyh-sistem\">Le probl\u00e8me des syst\u00e8mes de fichiers hi\u00e9rarchiques<\/h1>\n<p><\/p>\n<p>Les utilisateurs rencontrent souvent le probl\u00e8me du choix de l'emplacement pour enregistrer le prochain nouveau fichier et du probl\u00e8me de la recherche de leurs propres fichiers (parfois, les noms de fichiers ne sont m\u00eame pas destin\u00e9s \u00e0 \u00eatre m\u00e9moris\u00e9s par l'homme).<\/p>\n<p><\/p>\n<p>Une solution pourrait \u00eatre des syst\u00e8mes de fichiers s\u00e9mantiques, qui sont g\u00e9n\u00e9ralement une superposition de syst\u00e8mes de fichiers traditionnels. Dans ceux-ci, les r\u00e9pertoires sont remplac\u00e9s par des attributs s\u00e9mantiques, \u00e9galement appel\u00e9s \u00e9tiquettes, cat\u00e9gories, m\u00e9tadonn\u00e9es. J'utiliserai plus souvent le terme \u00ab cat\u00e9gorie \u00bb, car dans le contexte des syst\u00e8mes de fichiers, le mot \u00ab \u00e9tiquette \u00bb peut sembler \u00e9trange, surtout quand apparaissent des \u00ab sous-\u00e9tiquettes \u00bb et des \u00ab alias d'\u00e9tiquettes \u00bb.<\/p>\n<p><\/p>\n<p>L'attribution de cat\u00e9gories aux fichiers \u00e9limine en grande partie les probl\u00e8mes d'emplacement de stockage et de recherche de fichiers : si vous vous souvenez (ou soup\u00e7onnez) au moins l'une des cat\u00e9gories attribu\u00e9es \u00e0 un fichier, alors le fichier ne dispara\u00eetra jamais de la vue.<\/p>\n<p><\/p>\n<p>Ce sujet a d\u00e9j\u00e0 \u00e9t\u00e9 soulev\u00e9 \u00e0 plusieurs reprises sur Habr (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/27581\/\">un<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/337202\/\">deux<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/374465\/\">trois<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/81352\/\">quatre<\/a><\/noindex> et autres), ici je d\u00e9cris ma solution.<\/p>\n<p><\/p>\n<h1 id=\"put-k-realizacii\">La voie vers la r\u00e9alisation<\/h1>\n<p><\/p>\n<p>Juste apr\u00e8s le r\u00eave mentionn\u00e9, j'ai d\u00e9crit dans un carnet une interface en ligne de commande qui assurerait le travail n\u00e9cessaire avec les cat\u00e9gories. \u00c0 l'\u00e9poque, j'ai d\u00e9cid\u00e9 qu'un prototype pourrait \u00eatre \u00e9crit en une ou deux semaines en utilisant Python ou Bash, puis il faudrait travailler \u00e0 la cr\u00e9ation d'une interface graphique sous Qt ou GTK. La r\u00e9alit\u00e9, comme toujours, s'est av\u00e9r\u00e9e beaucoup plus difficile, et le d\u00e9veloppement a pris du retard.<\/p>\n<p><\/p>\n<p>L'id\u00e9e initiale \u00e9tait de cr\u00e9er avant tout un programme avec une interface en ligne de commande simple et concise qui permettrait de cr\u00e9er et de supprimer des cat\u00e9gories, d'assigner des cat\u00e9gories aux fichiers et de supprimer des cat\u00e9gories des fichiers. J'ai nomm\u00e9 le programme <em>vitis<\/em>.<\/p>\n<p><\/p>\n<p>La premi\u00e8re tentative de cr\u00e9er <em>vitis<\/em> cela s'est termin\u00e9 sans succ\u00e8s, car beaucoup de temps a commenc\u00e9 \u00e0 \u00eatre consacr\u00e9 au travail et \u00e0 l'universit\u00e9. La deuxi\u00e8me tentative a \u00e9t\u00e9 un peu plus concluante : j'ai r\u00e9ussi \u00e0 terminer le projet pr\u00e9vu pour ma th\u00e8se de ma\u00eetrise et m\u00eame \u00e0 cr\u00e9er un prototype de l'interface GTK. Mais cette version s'est r\u00e9v\u00e9l\u00e9e tellement instable et peu pratique qu'il a fallu repenser beaucoup de choses.<\/p>\n<p><\/p>\n<p>Avec la troisi\u00e8me version, je l'ai r\u00e9ellement utilis\u00e9e moi-m\u00eame pendant une longue p\u00e9riode, ayant class\u00e9 plusieurs milliers de mes fichiers par cat\u00e9gories. Cela a \u00e9t\u00e9 grandement facilit\u00e9 par l'autocompl\u00e9tion mise en \u0153uvre dans bash. Cependant, certains probl\u00e8mes, comme l'absence de cat\u00e9gories automatiques et la possibilit\u00e9 de stocker des fichiers portant le m\u00eame nom, persistaient, et le programme commen\u00e7ait d\u00e9j\u00e0 \u00e0 souffrir de sa complexit\u00e9. Ainsi, je suis arriv\u00e9 \u00e0 la n\u00e9cessit\u00e9 de r\u00e9soudre les probl\u00e8mes li\u00e9s au d\u00e9veloppement de logiciels complexes : r\u00e9diger des exigences d\u00e9taill\u00e9es, d\u00e9velopper un syst\u00e8me de tests fonctionnels, \u00e9tudier les instructions de packaging, et bien plus encore. Maintenant, je suis parvenu \u00e0 ce que j'avais envisag\u00e9, donc cette modeste cr\u00e9ation peut \u00eatre pr\u00e9sent\u00e9e \u00e0 la communaut\u00e9 libre. Une gestion de fichiers aussi sp\u00e9cifique, bas\u00e9e sur le concept de cat\u00e9gories, soul\u00e8ve des questions et des probl\u00e8mes inattendus, et pour les r\u00e9soudre <em>vitis<\/em> a engendr\u00e9 autour de lui cinq autres projets, dont certains seront mentionn\u00e9s dans l'article. \u00c0 ce jour <em>vitis<\/em> je n'ai pas acquis d'interface graphique, mais la commodit\u00e9 d'utilisation des cat\u00e9gories de fichiers depuis la ligne de commande d\u00e9passe d\u00e9j\u00e0 pour moi tous les avantages d'un gestionnaire de fichiers graphique classique.<\/p>\n<p><\/p>\n<h1 id=\"primery-ispolzovaniya\">Exemples d'utilisation<\/h1>\n<p><\/p>\n<p>Commen\u00e7ons par le simple : cr\u00e9ons une cat\u00e9gorie :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Musique<\/code><\/pre>\n<p><\/p>\n<p>Ajoutons-y, \u00e0 titre d'exemple, une composition :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Musique -f \"The Ink Spots - I Don't Want To Set The World On Fire.mp3\"<\/code><\/pre>\n<p><\/p>\n<p>Le contenu de la cat\u00e9gorie \u00ab Musique \u00bb peut \u00eatre consult\u00e9 avec la sous-commande \u00ab show \u00bb :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Musique<\/code><\/pre>\n<p><\/p>\n<p>On peut le lire avec la sous-commande \u00ab open \u00bb<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Musique<\/code><\/pre>\n<p><\/p>\n<p>\u00c9tant donn\u00e9 que nous avons seulement un fichier dans la cat\u00e9gorie \u00ab Musique \u00bb, seul celui-ci sera lanc\u00e9. Pour ouvrir les fichiers avec les programmes par d\u00e9faut, j'ai cr\u00e9\u00e9 un utilitaire distinct. <em>vts-fs-open<\/em> (les outils standard tels que xdg-open ou mimeopen ne me convenaient pas pour plusieurs raisons ; mais, si n\u00e9cessaire, dans les param\u00e8tres, vous pouvez sp\u00e9cifier un autre utilitaire pour ouvrir les fichiers de mani\u00e8re universelle). Cet utilitaire fonctionne plut\u00f4t bien sur diff\u00e9rentes distributions avec divers environnements de bureau, donc je recommande de l'installer avec vitis.<\/p>\n<p><\/p>\n<p>Il est \u00e9galement possible d'indiquer directement le programme pour ouvrir les fichiers :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Musique --app qmmp<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/4823ff69e03b2e8b9986eedfe0604a9d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cr\u00e9ons d'autres cat\u00e9gories et ajoutons des fichiers avec la commande \u00ab assign \u00bb. Si les fichiers sont affect\u00e9s \u00e0 des cat\u00e9gories qui n'existent pas encore, une demande de cr\u00e9ation sera \u00e9mise. On peut \u00e9viter cette demande suppl\u00e9mentaire en utilisant le drapeau \u2014yes.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Programmation R -f \"Introduction \u00e0 R.pdf\" \"Paquet statistique R : th\u00e9orie des probabilit\u00e9s et statistique math\u00e9matique.pdf\" --yes<\/code><\/pre>\n<p><\/p>\n<p>Maintenant, nous voulons ajouter \u00e0 fichier \u00ab Statistique R: th\u00e9orie des probabilit\u00e9s et statistique math\u00e9matique.pdf \u00bb la cat\u00e9gorie \u00ab Math\u00e9matiques \u00bb. Nous savons que ce fichier a d\u00e9j\u00e0 la cat\u00e9gorie \u00ab R \u00bb et nous pouvons donc utiliser le chemin cat\u00e9gorique du syst\u00e8me Vitis :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Math\u00e9matiques -v \"R\/Paquet statistique R : th\u00e9orie des probabilit\u00e9s et statistique math\u00e9matique.pdf\"<\/code><\/pre>\n<p><\/p>\n<p>Heureusement, l'autocompl\u00e9tion bash rend cela facile \u00e0 r\u00e9aliser.<\/p>\n<p><\/p>\n<p>Voyons ce que nous avons, en utilisant le drapeau \u2014categories pour voir la liste des cat\u00e9gories de chaque fichier :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/7bbaf561e6efe407ec8dfcda3a89c3b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Notez que des cat\u00e9gories automatiques ont \u00e9galement \u00e9t\u00e9 affect\u00e9es aux fichiers selon le format, le type (regroupe les formats) et l'extension des fichiers. Ces cat\u00e9gories peuvent \u00eatre d\u00e9sactiv\u00e9es si d\u00e9sir\u00e9. Plus tard, je vais assur\u00e9ment localiser leurs noms.<\/p>\n<p><\/p>\n<p>Ajoutons quelque chose de nouveau \u00e0 \u00ab Math\u00e9matiques \u00bb :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Math\u00e9matiques -f \"Analyse math\u00e9matique - 1984.pdf\" Perelman_ math\u00e9matiques_ludiques_1927.djvu <\/code><\/pre>\n<p><\/p>\n<p>Et maintenant, les choses deviennent int\u00e9ressantes. Au lieu de cat\u00e9gories, on peut \u00e9crire des expressions avec des op\u00e9rations d'union, d'intersection et de soustraction, c'est-\u00e0-dire utiliser des op\u00e9rations sur des ensembles. Par exemple, l'intersection de \u00ab Math\u00e9matiques \u00bb avec \u00ab R \u00bb donnera un fichier.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R i: Math\u00e9matiques<\/code><\/pre>\n<p><\/p>\n<p>Soustrayons de \u00ab Math\u00e9matiques \u00bb les mentions de la langue \u00ab R \u00bb :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Math\u00e9matiques R  #ou vitis show Math\u00e9matiques c: R<\/code><\/pre>\n<p><\/p>\n<p>Nous pouvons fusionner sans but la musique et le langage R :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Musique u: R<\/code><\/pre>\n<p><\/p>\n<p>Le drapeau -n permet de \u00ab tirer \u00bb des fichiers sp\u00e9cifiques du r\u00e9sultat d'une requ\u00eate par num\u00e9ro et\/ou plages, par exemple, <code>-n 3-7<\/code>, ou quelque chose de plus complexe : <code>-n 1,5,8-10,13<\/code>. Il est souvent utile d'utiliser la sous-commande open, qui permet d'ouvrir les fichiers n\u00e9cessaires de la liste.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/5e9181a711a88368b38d8cd2f2e628f4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bien que nous nous \u00e9loignions d'une hi\u00e9rarchie de r\u00e9pertoires traditionnelle, il est souvent utile d'avoir des cat\u00e9gories imbriqu\u00e9es. Cr\u00e9ons une sous-cat\u00e9gorie \u00ab Statistiques \u00bb dans la cat\u00e9gorie \u00ab Math\u00e9matiques \u00bb et ajoutons cette cat\u00e9gorie au fichier appropri\u00e9 :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Math\u00e9matiques\/Statistiques\n\nvitis assign Math\u00e9matiques\/Statistiques -v \"R\/Introduction \u00e0 R.pdf\"\n\nvitis show Math\u00e9matiques --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0bb3381f35cfa2fce381ecc66a62701f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nous pouvons voir que ce fichier a maintenant la cat\u00e9gorie \u00ab Math\u00e9matiques\/Statistiques \u00bb au lieu de \u00ab Math\u00e9matiques \u00bb (les liaisons suppl\u00e9mentaires sont suivies).<\/p>\n<p><\/p>\n<p>Il peut \u00eatre peu pratique de se r\u00e9f\u00e9rer au chemin complet, cr\u00e9ons un alias \u00ab global \u00bb :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Math\u00e9matiques\/Statistiques -a Statistiques\n\nvitis show Statistiques<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/619c27802802fd93594d3c0050dd78e8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"ne-tolko-obychnye-fayly\">Pas seulement des fichiers ordinaires<\/h2>\n<p><\/p>\n<h3 id=\"internet-ssylki\">Liens Internet<\/h3>\n<p><\/p>\n<p>Pour unifier le stockage de toute information, il serait utile, au minimum, de cat\u00e9goriser les liens vers des ressources Internet. Et c'est possible :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Habr Anomalie de couleur -i https:\/\/habr.com\/fr\/company\/sfe_fr\/blog\/437304\/ --yes<\/code><\/pre>\n<p><\/p>\n<p>Un fichier sera cr\u00e9\u00e9 \u00e0 un endroit sp\u00e9cial avec le titre de la page HTML et l'extension .desktop. C'est le format traditionnel de raccourci dans GNU\/Linux. Ces raccourcis obtiennent automatiquement la cat\u00e9gorie NetworkBookmarks.<\/p>\n<p><\/p>\n<p>Naturellement, les raccourcis sont cr\u00e9\u00e9s pour \u00eatre utilis\u00e9s :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Anomalie de couleur<\/code><\/pre>\n<p><\/p>\n<p>L'ex\u00e9cution de la commande ouvre dans le navigateur le lien r\u00e9cemment sauvegard\u00e9. Les raccourcis cat\u00e9goris\u00e9s vers des sources Internet peuvent servir de substituts aux favoris du navigateur.<\/p>\n<p><\/p>\n<h3 id=\"fragmenty-faylov\">Fragments de fichiers<\/h3>\n<p><\/p>\n<p>Il est \u00e9galement utile d'avoir des cat\u00e9gories pour des segments de fichiers sp\u00e9cifiques. Pas mal, non ? Mais la mise en \u0153uvre actuelle ne concerne pour l\u2019instant que les fichiers texte ordinaires, les fichiers audio et vid\u00e9o. Par exemple, si vous devez marquer un certain morceau d'un concert ou un moment dr\u00f4le d'un film, alors en utilisant assign, vous pouvez profiter des options \u2014fragname, \u2014start, \u2014finish. Enregistrons l\u2019introduction de \u00ab Duck Tales \u00bb :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign vitis assign -c Introduction -f Duck_Tales\/s01s01.avi --finish 00:00:59 --fragname \"Introduction Duck Tales\"\n\nvitis open Introduction<\/code><\/pre>\n<p><\/p>\n<p>En r\u00e9alit\u00e9, il n'y a pas de d\u00e9coupage de fichiers, au lieu de cela, un fichier d'index est cr\u00e9\u00e9 pour le segment, d\u00e9crivant le type de fichier, le chemin d'acc\u00e8s au fichier, le d\u00e9but et la fin du segment. La cr\u00e9ation et l'ouverture des index de segments sont d\u00e9l\u00e9gu\u00e9es \u00e0 des utilitaires, que j'ai sp\u00e9cialement cr\u00e9\u00e9s pour ces objectifs \u2014 mediafragmenter et fragplayer. Le premier cr\u00e9e, le second ouvre. Dans le cas des enregistrements audio et vid\u00e9o, la lecture du fichier multim\u00e9dia \u00e0 partir d'une certaine position jusqu'\u00e0 une autre se fait avec le lecteur VLC, donc il doit aussi \u00eatre pr\u00e9sent dans le syst\u00e8me. Au d\u00e9part, je voulais baser cela sur mplayer, mais il y avait \u00e9trangement des probl\u00e8mes avec le positionnement au bon moment.<br \/>\nDans notre exemple, un fichier \u00ab Duck Tales intro.fragpointer \u00bb est cr\u00e9\u00e9 (il est plac\u00e9 \u00e0 un endroit particulier), puis le segment est lu du d\u00e9but du fichier (puisque \u2014start n'a pas \u00e9t\u00e9 sp\u00e9cifi\u00e9 lors de la cr\u00e9ation) jusqu'\u00e0 une marque de 59 secondes, apr\u00e8s quoi VLC se ferme.<\/p>\n<p><\/p>\n<p>Un autre exemple \u2014 nous avons d\u00e9cid\u00e9 de cat\u00e9goriser une performance individuelle lors d'un concert d'un artiste c\u00e9l\u00e8bre :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign \u041b\u0435\u043f\u0441 \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\" -f Grigory Leps - Concert P\u0430\u0440\u0443\u0441 - chansons de Vladimir Vysotsky.mp4 --fragname \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\" --start 00:32:18 --finish 00:36:51\n\nvitis open \"\u0421\u043f\u0430\u0441\u0438\u0442\u0435 \u043d\u0430\u0448\u0438 \u0434\u0443\u0448\u0438\"<\/code><\/pre>\n<p><\/p>\n<p>Lors de l'ouverture, le fichier sera lanc\u00e9 \u00e0 la bonne position et se fermera apr\u00e8s quatre minutes et demie.<\/p>\n<p><\/p>\n<h1 id=\"kak-eto-vsyo-rabotaet--dopolnitelnye-vozmozhnosti\">Comment tout cela fonctionne + fonctionnalit\u00e9s suppl\u00e9mentaires<\/h1>\n<p><\/p>\n<h2 id=\"hranenie-kategoriy\">Stockage des cat\u00e9gories<\/h2>\n<p><\/p>\n<p>Au tout d\u00e9but de la conception de l'organisation d'un syst\u00e8me de fichiers s\u00e9mantique, trois m\u00e9thodes me sont venues \u00e0 l'esprit : \u00e0 travers le stockage de liens symboliques, via une base de donn\u00e9es, ou par une description en XML. La premi\u00e8re m\u00e9thode a \u00e9t\u00e9 choisie, car elle est, d'une part, simple \u00e0 mettre en \u0153uvre, et d'autre part, l'utilisateur peut voir les cat\u00e9gories directement depuis le syst\u00e8me de fichiers (ce qui est pratique et important). Au d\u00e9but de l'utilisation <em>vitis<\/em> Dans le r\u00e9pertoire personnel de l'utilisateur, un r\u00e9pertoire \u00ab Vitis \u00bb et un fichier de configuration \u00ab .config\/vitis\/vitis.conf \u00bb sont cr\u00e9\u00e9s. Dans ~\/Vitis, des r\u00e9pertoires correspondant aux cat\u00e9gories sont cr\u00e9\u00e9s, et \u00e0 l'int\u00e9rieur de ces r\u00e9pertoires-cat\u00e9gories, des liens symboliques vers les fichiers d'origine sont \u00e9tablis. Les alias de cat\u00e9gorie sont \u00e9galement simplement des liens vers eux. Bien s\u00fbr, la pr\u00e9sence du r\u00e9pertoire \u00ab Vitis \u00bb dans le r\u00e9pertoire personnel peut ne pas convenir \u00e0 certains. Nous pouvons changer cela vers n'importe quel autre endroit :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service set path \/mnt\/MyFavoriteDisk\/Vitis\/<\/code><\/pre>\n<p><\/p>\n<p>\u00c0 un certain moment, il devient \u00e9vident que cat\u00e9goriser des fichiers \u00e9parpill\u00e9s dans diff\u00e9rents endroits n'a pas beaucoup de sens, car leur emplacement peut changer. C'est pourquoi j'ai d'abord cr\u00e9\u00e9 un r\u00e9pertoire o\u00f9 je d\u00e9posais tout et donnait des cat\u00e9gories \u00e0 tout cela. Puis j'ai d\u00e9cid\u00e9 qu'il serait bon de formaliser cela au niveau logiciel. C'est ainsi qu'est apparu le concept d'\u00ab espace de fichiers \u00bb. <em>vitis<\/em> il serait judicieux de configurer un tel endroit (o\u00f9 seront stock\u00e9s tous les fichiers n\u00e9cessaires) et d'activer l'enregistrement automatique :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service add filespace \/mnt\/MyFavoriteDisk\/Filespace\/\n\nvitis service set autosave yes<\/code><\/pre>\n<p><\/p>\n<p>Sans la sauvegarde automatique lors de l'utilisation de la sous-commande &#171;assign&#187;, l'option &#8212;save sera n\u00e9cessaire si l'on souhaite sauvegarder le fichier ajout\u00e9 dans l'espace de fichiers.<\/p>\n<p><\/p>\n<p>De plus, il est possible d'ajouter plusieurs espaces de fichiers et de changer leur priorit\u00e9, ce qui peut s'av\u00e9rer utile lorsque vous avez de nombreux fichiers r\u00e9partis sur diff\u00e9rents supports. Je ne vais pas aborder cette possibilit\u00e9 ici, vous pouvez consulter l'aide du programme pour plus de d\u00e9tails.<\/p>\n<p><\/p>\n<h2 id=\"migraciya-semanticheskoy-faylovoy-sistemy\">Migration du syst\u00e8me de fichiers s\u00e9mantique<\/h2>\n<p><\/p>\n<p>Quoi qu'il en soit, le r\u00e9pertoire Vitis et les espaces de fichiers peuvent th\u00e9oriquement \u00eatre d\u00e9plac\u00e9s d'un endroit \u00e0 un autre. Pour les rendre op\u00e9rationnels, j'ai cr\u00e9\u00e9 un utilitaire distinct <em>link-editor<\/em>, qui peut modifier en masse les liens en rempla\u00e7ant certaines parties du chemin par d'autres :<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cp -r \/mnt\/MyFavoriteDisk\/Vitis\/ ~\/Vitis\nlink-editor -d ~\/Vitis\/ -f \/mnt\/MyFavoriteDisk\/Vitis\/ -r ~\/Vitis\/ -R\ncp -r \/mnt\/MyFavoriteDisk\/Filespace\/ ~\/MyFiles\nlink-editor -d ~\/Vitis\/ -f \/mnt\/FlashDrive-256\/Filespace\/ -r ~\/MyFiles -R<\/code><\/pre>\n<p><\/p>\n<p>Dans le premier cas, apr\u00e8s avoir d\u00e9m\u00e9nag\u00e9 de \/mnt\/MyFavoriteDisk\/Vitis\/ vers le r\u00e9pertoire personnel, les liens symboliques li\u00e9s aux alias sont modifi\u00e9s. Dans le second cas, apr\u00e8s avoir chang\u00e9 l'emplacement de l'espace de fichiers, tous les liens dans Vitis sont mis \u00e0 jour selon la demande de remplacement d'une partie de leur chemin.<\/p>\n<p><\/p>\n<h2 id=\"avtomaticheskie-kategorii\">Cat\u00e9gories automatiques<\/h2>\n<p><\/p>\n<p>Si vous ex\u00e9cutez la commande <code>vitis service get autocategorization<\/code>, vous pouvez voir que par d\u00e9faut, l'attribution des cat\u00e9gories automatiques est configur\u00e9e en fonction du format (Format et Type) et de l'extension des fichiers (Extension).<\/p>\n<p><\/p>\n<p>C'est utile, par exemple, lorsque vous devez trouver quelque chose parmi des PDF ou v\u00e9rifier ce que vous avez stock\u00e9 en EPUB et FB2, vous pouvez simplement ex\u00e9cuter la requ\u00eate<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Format\/MOBI u: Format\/FB2<\/code><\/pre>\n<p><\/p>\n<p>Il se trouve que les outils standard de GNU\/Linux comme file ou mimetype ne m'ont pas satisfait, pr\u00e9cis\u00e9ment parce qu'ils ne d\u00e9terminent pas toujours correctement le format. J'ai donc d\u00fb mettre en \u0153uvre ma propre solution bas\u00e9e sur les signatures de fichiers et les extensions. En g\u00e9n\u00e9ral, le sujet de la d\u00e9tection des formats de fichiers est int\u00e9ressant et m\u00e9rite un article \u00e0 part. Pour l'instant, je peux dire que je n'ai peut-\u00eatre pas pr\u00e9vu une reconnaissance fiable pour tous les formats au monde, mais globalement, cela fonctionne d\u00e9j\u00e0 assez bien. Cependant, pour les EPUB, le format est actuellement d\u00e9tect\u00e9 comme \u00e9tant un ZIP (ce qui est en fait justifi\u00e9, mais dans la pratique, ce n'est pas un comportement normal). Consid\u00e9rez cette fonctionnalit\u00e9 comme exp\u00e9rimentale pour le moment et signalez les bugs. Dans des situations \u00e9tranges, vous pouvez toujours utiliser des cat\u00e9gories bas\u00e9es sur l'extension des fichiers, par exemple, Extension\/epub.<\/p>\n<p><\/p>\n<p>Si les auto-cat\u00e9gories par format sont activ\u00e9es, les auto-cat\u00e9gories qui combinent certains formats tels que : &#171;Archives&#187;, &#171;Images&#187;, &#171;Vid\u00e9os&#187;, &#171;Audio&#187; et &#171;Documents&#187; le seront aussi. Des noms localis\u00e9s seront \u00e9galement cr\u00e9\u00e9s pour ces sous-cat\u00e9gories.<\/p>\n<p><\/p>\n<h1 id=\"o-chyom-ne-skazano\">Ce qui n'est pas mentionn\u00e9<\/h1>\n<p><\/p>\n<p><em>vitis<\/em> est devenu un outil tr\u00e8s polyvalent, et il est difficile de tout couvrir d'un coup. Je vais bri\u00e8vement mentionner ce que vous pouvez encore faire :<\/p>\n<p><\/p>\n<ul>\n<li>Vous pouvez supprimer les cat\u00e9gories et les retirer des fichiers ;<\/li>\n<li>Vous pouvez copier les r\u00e9sultats des requ\u00eates par expressions dans le r\u00e9pertoire sp\u00e9cifi\u00e9 ;<\/li>\n<li>Vous pouvez ex\u00e9cuter les fichiers comme des programmes ;<\/li>\n<li>La commande show a de nombreuses options, telles que le tri par nom\/date de modification ou acc\u00e8s\/taille\/extension, l'affichage des propri\u00e9t\u00e9s des fichiers et des chemins vers les originaux, l'activation de l'affichage des fichiers cach\u00e9s, etc. ;<\/li>\n<li>Lors de la sauvegarde des liens vers les sources Internet, vous pouvez \u00e9galement enregistrer des copies locales des pages HTML.<\/li>\n<\/ul>\n<p><\/p>\n<p>Tous les d\u00e9tails peuvent \u00eatre trouv\u00e9s dans le manuel utilisateur.<\/p>\n<p><\/p>\n<h1 id=\"perspektivy\">Perspectives<\/h1>\n<p><\/p>\n<p>Souvent, les sceptiques disent que &#171;personne ne va mettre ces balises soi-m\u00eame&#187;. Je peux prouver le contraire par mon propre exemple : j'ai d\u00e9j\u00e0 cat\u00e9goris\u00e9 plus de six mille fichiers, cr\u00e9\u00e9 plus de mille cat\u00e9gories et pseudonymes, et cela en valait la peine. Quand on ouvre un livre de Stolyarov sur le syst\u00e8me de mise en page LaTeX, il devient d\u00e9j\u00e0 moralement difficile d'utiliser le syst\u00e8me de fichiers &#171;\u00e0 l'ancienne&#187;. <code>vitis open Plan<\/code> vous ouvrez votre liste de t\u00e2ches ou quand vous utilisez une seule commande <code>vitis open LaTeX<\/code> Dans ce contexte, plusieurs id\u00e9es \u00e9mergent. Par exemple, on pourrait cr\u00e9er une radio automatique qui joue de la musique th\u00e9matique en fonction de la m\u00e9t\u00e9o actuelle, des f\u00eates, des jours de la semaine, des moments de la journ\u00e9e ou de l'ann\u00e9e. Pr\u00e8s du sujet se trouve un lecteur de musique qui conna\u00eet les cat\u00e9gories et peut jouer de la musique selon des expressions avec des op\u00e9rations sur les cat\u00e9gories trait\u00e9es comme des ensembles. Il serait utile de cr\u00e9er un d\u00e9mon qui surveillerait le dossier &#171;T\u00e9l\u00e9chargements&#187; et proposerait de cat\u00e9goriser les nouveaux fichiers. Et bien s\u00fbr, il faudrait d\u00e9velopper un bon gestionnaire de fichiers s\u00e9mantique graphique. \u00c0 une \u00e9poque, j'ai m\u00eame cr\u00e9\u00e9 un service web pour l'entreprise pour le partage collectif de fichiers, mais il n'\u00e9tait pas prioritaires et est devenu obsol\u00e8te, bien qu'il ait atteint un haut niveau de fonctionnalit\u00e9. (En raison des grands changements dans le monde lui-m\u00eame.<\/p>\n<p><\/p>\n<p>Sur cette base, plusieurs id\u00e9es viennent \u00e0 l'esprit. Par exemple, on pourrait cr\u00e9er une radio automatique qui joue de la musique th\u00e9matique correspondant aux conditions m\u00e9t\u00e9orologiques actuelles, aux jours f\u00e9ri\u00e9s, aux jours de la semaine, aux heures de la journ\u00e9e ou \u00e0 la saison. Une autre option pertinente serait un lecteur musical capable d'interagir avec les cat\u00e9gories et de jouer de la musique selon des crit\u00e8res li\u00e9s aux op\u00e9rations de ces cat\u00e9gories comme des ensembles. Il serait pratique de d\u00e9velopper un outil qui surveille le dossier &#171;T\u00e9l\u00e9chargements&#187; et propose de cat\u00e9goriser les nouveaux fichiers ajout\u00e9s. Et, bien s\u00fbr, il serait souhaitable de concevoir un gestionnaire de fichiers s\u00e9mantique graphique performant. Autrefois, j'avais m\u00eame \u00e9labor\u00e9 un service en ligne destin\u00e9 aux entreprises pour un usage collectif des fichiers, mais celui-ci est devenu obsol\u00e8te, bien qu'il ait atteint un niveau satisfaisant de fonctionnalit\u00e9. <em>vitis<\/em>, il n'est plus utilisable.)<\/p>\n<p>\n<b class=\"spoiler_title\">Voici une petite d\u00e9monstration<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux\" src=\"\/wp-content\/uploads\/2019\/06\/0a8e3829424135a6bf9390d2b2654499.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Conclusion<\/h1>\n<p><\/p>\n<p><em>Vitis<\/em> \u2014 n'est pas la premi\u00e8re tentative de changer radicalement le style de travail avec les donn\u00e9es, mais j'ai jug\u00e9 important de r\u00e9aliser mes id\u00e9es et de rendre la r\u00e9alisation accessible en open source sous la licence GNU GPL. Pour plus de commodit\u00e9, j'ai cr\u00e9\u00e9 un paquet deb pour x86-64, qui devrait fonctionner sur toutes les distributions Debian modernes. Sur ARM, il y a eu quelques difficult\u00e9s (toutes les autres programmes li\u00e9s \u00e0 <em>vitis<\/em>, fonctionnent normalement), mais un paquet fonctionnel sera \u00e9galement construit pour cette plateforme (armhf) plus tard. J'ai temporairement cess\u00e9 de cr\u00e9er des paquets RPM en raison de probl\u00e8mes sur Fedora 30 et de la difficult\u00e9 \u00e0 se disperser sur de nombreuses distributions RPM, mais je pr\u00e9vois quand m\u00eame de cr\u00e9er des paquets pour au moins quelques-unes d'entre elles plus tard. En attendant, vous pouvez utiliser <code>make &amp;&amp; make install<\/code> ou <code>checkinstall<\/code>.<\/p>\n<p><\/p>\n<p>Merci \u00e0 tous pour votre attention ! J'esp\u00e8re que cet article et ce projet pourront s'av\u00e9rer utiles.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/tech.vindex\/vitis\">Lien vers le d\u00e9p\u00f4t du projet<\/a><\/noindex><\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/457328\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439. \u042f \u043b\u044e\u0431\u043b\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u0430\u0436\u0443\u0449\u0443\u044e\u0441\u044f \u043d\u0443\u0436\u043d\u043e\u0439, \u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u0432\u043e \u0441\u043d\u0435 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e \u0438 \u0443\u0434\u043e\u0431\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u044d\u0433\u043e\u0432 \u0444\u0430\u0439\u043b\u0430\u043c, \u0438 \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0430\u043a \u0436\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0447\u0430\u0441\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26733,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35687","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0438\u043b\u0438 \u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:46+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Cat\u00e9gories au lieu de r\u00e9pertoires, ou Syst\u00e8me de fichiers s\u00e9mantiques pour Linux | ProHoster","description":"La classification des donn\u00e9es est en soi un sujet int\u00e9ressant pour la recherche.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0438\u043b\u0438 \u0421\u0435\u043c\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f Linux | ProHoster","og:description":"\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0439.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:46+00:00","article:modified_time":"2019-10-31T19:05:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35687","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 00:23:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:57:46","updated":"2026-01-22 00:23:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=35687"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/26733"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=35687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=35687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=35687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}