{"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\/et\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","title":{"rendered":"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Andmete klassifitseerimine iseenesest on huvitav uurimisteema. Mulle meeldib koguda teavet, mis n\u00e4ib olevat vajalik, ja olen alati p\u00fc\u00fcdnud luua loogilisi kaustastruktuure oma failide jaoks. \u00dchel \u00f6\u00f6l n\u00e4gin ilusat ja mugavat programmi, mis m\u00e4\u00e4rab failidele silte, ning otsustasin, et niimoodi edasi elada ei saa.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"problema-ierarhicheskih-faylovyh-sistem\">Hierarhiliste failis\u00fcsteemide probleem<\/h1>\n<p><\/p>\n<p>Kasutajad seisavad tihti silmitsi k\u00fcsimusega, kuhu salvestada uus fail ning kuidas leida oma faile (m\u00f5nikord ei ole failide nimed inimestele m\u00f5istetavad).<\/p>\n<p><\/p>\n<p>V\u00e4ljumiseks v\u00f5ivad olla semantilised failis\u00fcsteemid, mis on enamasti traditsioonilise failis\u00fcsteemi pealiskihiks. Nendes asendatakse kaustad semantiliste atribuutidega, mida nimetatakse ka siltideks, kategooriateks ja metaandmeteks. Kasutan sagedamini terminit \u201ekategooria\u201c, kuna failis\u00fcsteemide kontekstis k\u00f5lab s\u00f5na \u201esilt\u201c m\u00f5nikord veidralt, eriti kui tekivad \u201ealamsildid\u201c ja \u201esiltide pseudon\u00fc\u00fcmid\u201c.<\/p>\n<p><\/p>\n<p>Failidele kategooriate m\u00e4\u00e4ramine k\u00f5rvaldab paljuski probleeme salvestamisruumi ja failide leidmisega: kui sa m\u00e4letad (v\u00f5i aimad) v\u00e4hemalt \u00fchte m\u00e4\u00e4ratud kategooriat, siis fail ei j\u00e4\u00e4 enam kunagi varju.<\/p>\n<p><\/p>\n<p>Varem on Habr's seda teemat korduvalt k\u00e4sitletud (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/27581\/\">\u00fcks<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/337202\/\">kaks<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/374465\/\">kolmest<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/81352\/\">neli<\/a><\/noindex> jne), siin kirjeldan oma lahendust.<\/p>\n<p><\/p>\n<h1 id=\"put-k-realizacii\">Tee elluviimiseni<\/h1>\n<p><\/p>\n<p>Tasusest p\u00e4rast mainitud und kirjutasin vihikusse k\u00e4surea liidese, mis v\u00f5imaldab vajalikku t\u00f6\u00f6d kategooriatega teha. Siis otsustasin, et \u00fche v\u00f5i kahe n\u00e4dalaga saab protot\u00fc\u00fcbi valmis kirjutada, kasutades Pythonit v\u00f5i Bash'i, ja hiljem tuleb teha t\u00f6\u00f6d graafilise liidese loomisel Qt v\u00f5i GTK-l. Reaalsus oli, nagu alati, palju karmim ning arendus venis.<\/p>\n<p><\/p>\n<p>Esialgne idee oli luua programm, millel on mugav ja l\u00fchike k\u00e4surea liides, mis v\u00f5imaldab luua ja kustutada kategooriaid, m\u00e4\u00e4rata kategooriaid failidele ja kustutada kategooriaid failidest. Nimesin programmi <em>vitis<\/em>.<\/p>\n<p><\/p>\n<p>Esimene katse luua <em>vitis<\/em> l\u00f5ppes mittemillegagi, kuna palju aega kulus t\u00f6\u00f6le ja \u00fclikoolile. Teine katse oli juba midagi: magistrit\u00f6\u00f6 jaoks \u00f5nnestus l\u00f5petada planeeritud projekt ja isegi GTK-liidese protot\u00fc\u00fcp valmis teha. Kuid see versioon osutus nii ebausaldusv\u00e4\u00e4rseks ja ebamugavaks, et tuli palju \u00fcmber m\u00f5elda.<\/p>\n<p><\/p>\n<p>Kolmandat versiooni kasutasin ma ise v\u00e4ga pikka aega, jagades kategooriatesse mitu tuhat oma faili. Sellele aitas oluliselt kaasa rakendatud bash'i autokomplekteerimine. Kuid m\u00f5ned probleemid, nagu automaatsete kategooriate puudumine ja samade nimedega failide s\u00e4ilitamise v\u00f5imalus, j\u00e4id siiski alles, ja programm hakkas juba enda keerukuse all kokku kukkuma. N nii j\u00f5udsin ma vajaduseni lahendada keerulise tarkvara arendamise probleeme: kirjutada p\u00f5hjalikud n\u00f5uded, arendada funktsionaalse testimise s\u00fcsteem, uurida pakendamisjuhiseid ja palju muud. Praegu olen j\u00f5udnud soovitud tulemusele, nii et see tagasihoidlik looming v\u00f5ib olla esitatud vabale kogukonnale. Selline spetsiifiline failihaldus, nagu kategooriate kaudu haldamine, toob esile ootamatuid k\u00fcsimusi ja probleeme ning nende lahendemine <em>vitis<\/em> s\u00fcnnitas enda \u00fcmber veel viis projekti, millest m\u00f5ned mainitakse artiklis. Kuni t\u00e4naseni <em>vitis<\/em> ei ole ma graafilist liidest omandanud, kuid failikategooriate kasutamise mugavus k\u00e4surealt \u00fcletab juba minu jaoks k\u00f5ik tavalise graafilise failihalduri eelised.<\/p>\n<p><\/p>\n<h1 id=\"primery-ispolzovaniya\">Kasutamise n\u00e4ited<\/h1>\n<p><\/p>\n<p>Alustame lihtsast \u2014 loome kategooria:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Muusika<\/code><\/pre>\n<p><\/p>\n<p>Lisame sellesse n\u00e4itena m\u00f5ne loo:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Muusika -f \"The Ink Spots - I Don't Want To Set The World On Fire.mp3\"<\/code><\/pre>\n<p><\/p>\n<p>Kategooria \u201eMuusika\u201c sisu saab vaadata alamk\u00e4sklusega \u201eshow\u201c:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Muusika<\/code><\/pre>\n<p><\/p>\n<p>Seda saab taasesitada alamk\u00e4sklusega \u201eopen\u201c<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Muusika<\/code><\/pre>\n<p><\/p>\n<p>Kuna meil on kategoorias \u201eMuusika\u201c ainult \u00fcks fail, k\u00e4ivitub ainult see. Failide avamiseks vaikimisi programmidega tegin eraldi utiliidi <em>vts-fs-open<\/em> (tavalised vahendid nagu xdg-open v\u00f5i mimeopen ei rahuldanud mind mitmel p\u00f5hjusel; kuid kui soovite, v\u00f5ite seadetes m\u00e4\u00e4rata teise utiliidi failide universaalseks avamiseks). See utiliit t\u00f6\u00f6tab h\u00e4sti erinevates distributsioonides erinevate graafiliste keskkondadega, seega soovitan koos vitisega ka selle paigaldada.<\/p>\n<p><\/p>\n<p>Saame otse m\u00e4\u00e4rata ka programmi failide avamiseks:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open Muusika --app qmmp<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" src=\"\/wp-content\/uploads\/2019\/06\/4823ff69e03b2e8b9986eedfe0604a9d.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Loome veel kategooriaid ja lisame faile k\u00e4suga \u201eassign\u201c. Kui faile m\u00e4\u00e4ratakse veel mitteeksisteerivatesse kategooriatesse, antakse v\u00e4ljakutse nende loomise jaoks. \u00dcksikute p\u00e4ringute v\u00e4ltimiseks v\u00f5ib kasutada lippu \u2014yes.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Programmeerimine R -f \"Sissejuhatus R.pdf\" \"Statistiline paket R: t\u00f5en\u00e4osusteooria ja matemaatika statistika.pdf\" --yes<\/code><\/pre>\n<p><\/p>\n<p>N\u00fc\u00fcd soovime lisada failile \u201eStatistiline paket R: t\u00f5en\u00e4osusteooria ja statsistika.pdf\u201c kategooria \u201eMatemaatika\u201c. Teame, et see fail on juba kategooria \u201eR\u201c all ja seet\u00f5ttu saame kasutada Vitis-s\u00fcsteemi kategooriate teed:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matemaatika -v \"R\/Statistiline paket R: t\u00f5en\u00e4osusteooria ja matemaatika statistika.pdf\"<\/code><\/pre>\n<p><\/p>\n<p>\u00d5nneks v\u00f5imaldab bash'i automaatne t\u00e4iendamine seda kergelt teha.<\/p>\n<p><\/p>\n<p>Vaadakem, mis v\u00e4lja tuli, kasutades lippu \u2014categories, et n\u00e4ha iga faili kategooriate loendit:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" src=\"\/wp-content\/uploads\/2019\/06\/7bbaf561e6efe407ec8dfcda3a89c3b8.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pange t\u00e4hele, et failidele on m\u00e4\u00e4ratud ka automaatsed kategooriad sisu formaadi, t\u00fc\u00fcbi (koondab formaate) ja faililaiendi j\u00e4rgi. Soovi korral on neid kategooriaid v\u00f5imalik v\u00e4ljal\u00fclitada. Hiljem teen kindlasti nende nimede lokaliseerimise.<\/p>\n<p><\/p>\n<p>Lisame huvi p\u00e4rast \u201eMatemaatikasse\u201c veel midagi:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matemaatika -f \"Matemaatika anal\u00fc\u00fcs - 1984.pdf\" Perelman_Huvitav_matemaatika_1927.djvu <\/code><\/pre>\n<p><\/p>\n<p>N\u00fc\u00fcd algab huvitav osa. Kategooriate asemel saab kirjutada v\u00e4ljendeid, milles kasutatakse \u00fchendamise, ristumise ja lahutamise tehteid, st kasutada hulkade operatsioone. N\u00e4iteks ristumine \u201eMatemaatika\u201c ja \u201eR\u201c annab tulemuseks \u00fche faili.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show R i: Matemaatika<\/code><\/pre>\n<p><\/p>\n<p>Lahutame \u201eMatemaatikast\u201c mainimised keele \u201eR\u201c:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Matemaatika R #v\u00f5i vitis show Matemaatika c: R<\/code><\/pre>\n<p><\/p>\n<p>Saame m\u00f5ttetult liita Muusika ja R-keele:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Muusika u: R<\/code><\/pre>\n<p><\/p>\n<p>Lipp -n v\u00f5imaldab \u201ev\u00e4lja t\u00f5mmata\u201c p\u00e4ringu tulemusest soovitud faile numbrite ja\/v\u00f5i vahemike j\u00e4rgi, n\u00e4iteks <code>-n 3-7<\/code>, v\u00f5i midagi keerulisemat: <code>-n 1,5,8-10,13<\/code>. Sageli on see kasulik koos alakomandiga open, mis v\u00f5imaldab avada vajalikud failid loendist.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" src=\"\/wp-content\/uploads\/2019\/06\/5e9181a711a88368b38d8cd2f2e628f4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuigi me lahkume tavap\u00e4rase kaustahierarhia kasutamisest, on tihti kasulik omada alamkategooriaid. Loome kategooria \u201eStatistika\u201c kategooria \u201eMatemaatika\u201c alla ja lisame selle kategooria sobivale failile:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis create Matemaatika\/Statistika\n\nvitis assign Matemaatika\/Statistika -v \"R\/Sissejuhatus R.pdf\"\n\nvitis show Matemaatika --categories<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" src=\"\/wp-content\/uploads\/2019\/06\/0bb3381f35cfa2fce381ecc66a62701f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e4eme, et see fail on n\u00fc\u00fcd kategooria \u201eMatemaatika\/Statistika\u201c all, mitte enam \u201eMatemaatika\u201c (\u00fclem\u00e4\u00e4rased lingid j\u00e4lgitakse).<\/p>\n<p><\/p>\n<p>Kogu tee kasutamine v\u00f5ib olla ebamugav, loome \"globaalse\" h\u00fc\u00fcdnime:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Matemaatika\/Statistika -a Statistika\n\nvitis show Statistika<\/code><\/pre>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" 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\">Mitte ainult tavaliseks failideks<\/h2>\n<p><\/p>\n<h3 id=\"internet-ssylki\">Interneti-lingid<\/h3>\n<p><\/p>\n<p>Iga info \u00fchtse hoidmise jaoks oleks kasulik, v\u00e4hemalt, kategooriate kaudu korraldada linke internetiressurssidele. Ja see on v\u00f5imalik:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Habr V\u00e4rvianomaalia -i https:\/\/habr.com\/ru\/company\/sfe_ru\/blog\/437304\/ --yes<\/code><\/pre>\n<p><\/p>\n<p>Spetsiaalsesse kohta luuakse fail, millel on HTML-lehe pealkiri ja laiend .desktop. See on traditsiooniline otsetee formaat GNU\/Linuxis. Sellised otseteed saavad automaatse kategooria NetworkBookmarks.<\/p>\n<p><\/p>\n<p>Muidugi, otseteed loodi nende kasutamiseks:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis open V\u00e4rvianomaalia<\/code><\/pre>\n<p><\/p>\n<p>K\u00e4skluse t\u00e4itmine avab brauseris just \u00e4sja salvestatud lingi. Kategooriatud otseteed internetiressurssidele v\u00f5ivad toimida brauseri j\u00e4rjehoidjate asendajatena.<\/p>\n<p><\/p>\n<h3 id=\"fragmenty-faylov\">Failijupid<\/h3>\n<p><\/p>\n<p>Samuti on kasulik omada kategooriaid eraldi failide fragmentide jaoks. Pole paha ettepanek, eks? Kuid praegune teostus puudutab ainult tavalisi tekstifaile, audio- ja videofaile. Oletame, et peate m\u00e4rgistama mingi osa kontserdist v\u00f5i naljakat hetke filmist, siis kasutades assign'i, saate kasutada lippu \u2014fragname, \u2014start, \u2014finish. Salvestame stseeni \"Ankude lugudest\":<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign vitis assign -c Algusj\u00e4rjed -f Duck_Tales\/s01s01.avi --finish 00:00:59 --fragname \"Kanuu lugude intro\"\n\nvitis open Algusj\u00e4rjed<\/code><\/pre>\n<p><\/p>\n<p>Tegelikult ei toimu mingit failide katkestamist, selle asemel luuakse fragmenti osutav fail, kus on kirjas failit\u00fc\u00fcp, faili tee, fragmenti algus ja l\u00f5pp. Fragmentide osutajate loomine ja avamine on delegeeritud utiliitidele, mille ma spetsiaalselt nende eesm\u00e4rkide jaoks tegin \u2014 see on mediafragmenter ja fragplayer. Esimene loob, teine avab. Audio- ja videoarhiivide puhul toimub meedia faili k\u00e4ivitamine kindlast positsioonist teise punkti abil VLC m\u00e4ngijaga, seega peab see samuti s\u00fcsteemis olema. Alguses tahtsin teha seda mplayer'iga, aga seal oli positsioneerimisega mingil p\u00f5hjusel v\u00e4ga kehvasti.<br \/>\nMeie n\u00e4ites luuakse fail \"Duck Tales intro.fragpointer\" (see paigutatakse erilisse kohta), seej\u00e4rel m\u00e4ngitakse fragment algusest (kuna \u2014start'i ei olnud loomisel m\u00e4\u00e4ratud) kuni 59-sekundise m\u00e4rkini, p\u00e4rast mida VLC suletakse.<\/p>\n<p><\/p>\n<p>Teine n\u00e4ide \u2014 me otsustasime kategoriseerida eraldised m\u00f5ne kuulsuse kontserdilt:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis assign Lep\u0441 \"Salvage Our Souls\" -f Grigori L\u0435\u043f\u0441 - Kontsert P\u0430\u0440\u0443\u0441 - Vladimir \u0412\u044b\u0441\u043e\u0446\u043a\u0438\u0439 laulud.mp4 --fragname \"Salvage Our Souls\" --start 00:32:18 --finish 00:36:51\n\nvitis open \"Salvage Our Souls\"<\/code><\/pre>\n<p><\/p>\n<p>Fail avamisel m\u00e4ngitakse see vajalikus asendis ja sulgub nelja ja poole minuti p\u00e4rast.<\/p>\n<p><\/p>\n<h1 id=\"kak-eto-vsyo-rabotaet--dopolnitelnye-vozmozhnosti\">Kuidas see k\u00f5ik t\u00f6\u00f6tab + t\u00e4iendavad v\u00f5imalused<\/h1>\n<p><\/p>\n<h2 id=\"hranenie-kategoriy\">Kategooriate hoidmine<\/h2>\n<p><\/p>\n<p>Alguses, kui m\u00f5tlesin v\u00e4lja semantilise failis\u00fcsteemi korralduse, tuli mul p\u00e4he kolm v\u00f5imalust: s\u00fcmboolsete linkide hoidmise kaudu, andmebaasi abil, XML-i kaudu. Esimene meetod v\u00f5itis, kuna see on \u00fchelt poolt lihtne rakendada ja teiselt poolt v\u00f5imaldab kasutajal vaadata kategooriaid otse failis\u00fcsteemist (ja see on mugav ja oluline). Alguses kasutamise <em>vitis<\/em> Kasutaja kodu kataloogis luuakse kataloog \"Vitis\" ja konfigureerimisfail \".config\/vitis\/vitis.conf\". Kataloogis ~\/Vitis luuakse direktorid vastavalt kategooriatele ning nende kategooriate kataloogides luuakse s\u00fcmboolsed lingid originaalfailidele. Kategooriate h\u00fc\u00fcdnimed on samuti lihtsalt lingid neile. Loomulikult v\u00f5ib m\u00f5nesid inimesi h\u00e4irida, et kodukataloogis on kataloog \"Vitis\". Saame \u00fcle minna ka m\u00f5nda teise kohta:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis service set path \/mnt\/MyFavoriteDisk\/Vitis\/<\/code><\/pre>\n<p><\/p>\n<p>Teatud hetkel saab selgeks, et erinevates kohtades asuvat faile on m\u00f5ttetu kategooriatesse jagada, kuna nende asukoht v\u00f5ib muutuda. Seet\u00f5ttu l\u00f5in alguses endale katalooge, kuhu lihtsalt k\u00f5ik kokku ladusin ja andsin neile kategooriad. Siis m\u00f5tlesin, et oleks hea see aspekt programmitasandil korraldada. Nii tekkis \"failiruum\". <em>vitis<\/em> ei teeni kohe mitte \u00e4ra seadistada sellist kohta (kuhu ladustatakse k\u00f5ik meie jaoks vajalikud failid) ja lubada automaatne salvestamine:<\/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>Ilma automaatset salvestamist peab k\u00e4su \"assign\" kasutamisel olema lipp --save, kui tekib soov salvestada lisatav fail failide ruumi.<\/p>\n<p><\/p>\n<p>Lisaks sellele on v\u00f5imalik lisada mitu failiruumi ja muuta nende prioriteete, mis v\u00f5ib olla kasulik, kui faile on palju ja need on erinevates seadmetes. Siin ma seda v\u00f5imalust ei k\u00e4sitle, rohkem informatsiooni leiate programmi abist.<\/p>\n<p><\/p>\n<h2 id=\"migraciya-semanticheskoy-faylovoy-sistemy\">Semantilise failis\u00fcsteemi migratsioon<\/h2>\n<p><\/p>\n<p>Igatahes v\u00f5ivad Vitis kataloog ja failiruumi teoreetiliselt m\u00f5nikord asukohta vahetada. T\u00f6\u00f6le viimiseks l\u00f5in eraldi utiliidi <em>link-editor<\/em>, mis suudab massiliselt redigeerida linke, vahetades tee osi teiste vastu:<\/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>Esimesel juhul, p\u00e4rast kolimist \/mnt\/MyFavoriteDisk\/Vitis\/ oma kodukatalooge, redigeeritakse s\u00fcmboolseid linke, mis on seotud alias'tega. Teisel juhul, p\u00e4rast failiruumi asukoha muutmist, muudetakse k\u00f5ik Vitis linkide teed vastavalt nende uute asukohtade n\u00f5udmisele.<\/p>\n<p><\/p>\n<h2 id=\"avtomaticheskie-kategorii\">Automaatne kategooria<\/h2>\n<p><\/p>\n<p>Kui k\u00e4ivitada k\u00e4sk <code>vitis service get autocategorization<\/code>, siis on n\u00e4ha, et vaikimisi on automaatsete kategooriate m\u00e4\u00e4ramine seadistatud formaadi (Format ja Type) ja faililaiendi (Extension) alusel.<\/p>\n<p><\/p>\n<p>See on kasulik, kui n\u00e4iteks vajate m\u00f5nda PDF-i leidmiseks v\u00f5i soovite vaadata, mis teil on s\u00e4ilitatuna EPUB ja FB2 formaadis, saate lihtsalt sisestada p\u00e4ringu<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">vitis show Format\/MOBI u: Format\/FB2<\/code><\/pre>\n<p><\/p>\n<p>Just so happened that standard GNU\/Linux tools like file or mimetype did not satisfy me precisely because they do not always determine the format correctly, I had to create my own implementation based on file signatures and extensions. In general, the topic of determining file formats is an interesting area for research and deserves a separate article. For now, I can say that I may not have provided accurate recognition for all formats in the world, but overall it works quite well already. However, EPUB is currently identified as ZIP (which is generally justified, but in practice, this should not be considered normal behavior). For some time, consider this feature experimental; please report any bugs. In unusual situations, you can always use categories by file extension, for example, Extension\/epub.<\/p>\n<p><\/p>\n<p>Kui formaadi p\u00f5hised automaatsed kategooriad on sisse l\u00fclitatud, on samuti sisse l\u00fclitatud automaatsed kategooriad, mis \u00fchendavad teatud formaate nagu: \"Archives\", \"Pictures\", \"Video\", \"Audio\" ja \"Documents\". Nendele alamkategooriatele tehakse samuti lokaliseeritud nimed.<\/p>\n<p><\/p>\n<h1 id=\"o-chyom-ne-skazano\">What is not said<\/h1>\n<p><\/p>\n<p><em>vitis<\/em> became a very multifaceted tool, and it is difficult to cover everything at once. Briefly, I will mention what else can be done:<\/p>\n<p><\/p>\n<ul>\n<li>categories can be deleted and removed from files;<\/li>\n<li>query results based on expressions can be copied to the specified directory;<\/li>\n<li>files can be launched as programs;<\/li>\n<li>the show command has many options, for example, sorting by name\/date of modification or by access\/size\/extension, displaying file properties and paths to originals, including the option to show hidden files, and more;<\/li>\n<li>when saving links to internet sources, local copies of HTML pages can also be saved.<\/li>\n<\/ul>\n<p><\/p>\n<p>All details can be found in the user help.<\/p>\n<p><\/p>\n<h1 id=\"perspektivy\">Prospects<\/h1>\n<p><\/p>\n<p>Sageli \u00fctlevad skeptikud, et \"keegi ei hakka neid silte ise seadistama\". Oma kogemusest v\u00f5in t\u00f5estada vastupidist: olen juba kategoriseerinud \u00fcle kuue tuhande faili, loonud \u00fcle tuhande kategooria ja pseudon\u00fc\u00fcmi ning see oli seda v\u00e4\u00e4rt. Kui \u00fche meeskonnaga <code>vitis open Plan<\/code> you open the list of your tasks or with one command <code>vitis open LaTeX<\/code> avaned Stolyarovi raamatu LaTeX-i koostes\u00fcsteemist, on juba vaimselt keeruline kasutada failis\u00fcsteemi \"vana moodi\".<\/p>\n<p><\/p>\n<p>Sel p\u00f5hjusel kerkivad mitmed ideed. N\u00e4iteks v\u00f5iks teha automaatse raadio, mis m\u00e4ngib temaatilist muusikat vastavalt praegusele ilmale, p\u00fchadele, n\u00e4dalap\u00e4evale, \u00f6\u00f6ajale v\u00f5i aastajale. Veel teemaga seotud on muusikaplayer, mis teab kategooriatest ja suudab m\u00e4ngida muusikat vastavalt kategooriatele nagu hulgad. Kasulik oleks teha deemon, mis j\u00e4lgib \"Allalaadimiste\" katalooge ja pakub uusi faile kategoriseerida. Muidugi tuleks ka teha korralik graafiline semantiline failihaldur. Kunagi tegin isegi ettev\u00f5ttele veebiteenuse failide koost\u00f6\u00f6ks, kuid see ei olnud prioriteet ja muutus ebaoluliseks, kuigi saavutas k\u00f5rge t\u00f6\u00f6kindluse. <em>vitis<\/em>, ei ole see enam kasutamiseks sobiv.)<\/p>\n<p>\n<b class=\"spoiler_title\">siin on v\u00e4ike demonstreerimine<\/b><\/p>\n<p><img decoding=\"async\" alt=\"Kategooriad, mitte kataloogid, v\u00f5i Semantiline failis\u00fcsteem Linuxile\" src=\"\/wp-content\/uploads\/2019\/06\/0a8e3829424135a6bf9390d2b2654499.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Kokkuv\u00f5te<\/h1>\n<p><\/p>\n<p><em>Vitis<\/em> ei ole esimene katse radikaalselt muuta andmet\u00f6\u00f6tluse stiili, kuid pidasin oluliseks oma ideid teostada ja avaldada teostust avatud juurdep\u00e4\u00e4su all GNU GPL litsentsi alusel. Mugavuse huvides on loodud deb-pakett x86-64 jaoks, see peaks t\u00f6\u00f6tama k\u00f5igil kaasaegsetel Debian-distrodel. ARM-il esines v\u00e4ikseid keerukusi (kui k\u00f5ik muud programmid, mis on seotud <em>vitis<\/em>, t\u00f6\u00f6tavad normaalselt), kuid hiljem koostatakse ka sellele platvormile (armhf) t\u00f6\u00f6tav pakett. RPM-pakettide loomisega olen praegu l\u00f5petanud seoses probleemidega Fedora 30-ga ja keerukusega hajutuda paljudele RPM-distrodele, kuid hiljem v\u00e4hemalt paariks neist ikkagi pakette tehakse. Seni saab kasutada <code>make &amp;&amp; make install<\/code> v\u00f5i <code>checkinstall<\/code>.<\/p>\n<p><\/p>\n<p>Suur t\u00e4nu t\u00e4helepanu eest! Loodan, et see artikkel ja projekt osutuvad kasulikuks.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/tech.vindex\/vitis\">Lingid projekti repo kohta<\/a><\/noindex><\/p>\n<p>Allikas: <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.1.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\/et\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Kategooriad kui kaustad, v\u00f5i Semantiline failis\u00fcsteem Linuxile | ProHoster","description":"Andmete klassifitseerimine on iseenesest huvitav uurimisteema.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kategorii-vmesto-direktorij-ili-semanticheskaya-fajlovaya-sistema-dlya-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/35687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35687"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35687\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/26733"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}