Oznaczanie plików w systemie Ubuntu

11

Jak ustawić tagi na plikach na Ubuntu?

Chcę otagować wszelkiego rodzaju pliki:

  • Obrazy
  • Audio
  • Tekst
  • Gabinet
  • Katalogi

Jedynym rozwiązaniem, jakie znalazłem, był MetaTracker .

Ale te projekty wydają się martwe.

Jak mogę rozwiązać ten problem z komputerem?

Byłoby super, gdybyś mógł zsynchronizować te tagi z serwerem takim jak nextcloud.

guettli
źródło
1
wypróbowałem trackera, ale wydaje się bardzo zepsuty
Anona112,
1
Co jest nie tak z tym q + a: askubuntu.com/questions/827701/... ?
Rinzwind,
1
@Rinzwind dziękuję za wskazanie na pytanie 827701. Najwyższe możliwe rozwiązanie powinno działać. Ale zastanawiam się, dlaczego takie skrypty są potrzebne. Dlaczego nie ma gotowej do użycia aplikacji? Biblioteki linux są naprawdę świetne. Nie brakuje wiele, tylko niektóre polerowanie i linux mogą konkurować z produktami jabłkowymi. Ale wygląda na to, że maniacy Linuksa uwielbiają detale, dbają o szczegóły, ale wysoki poziom użycia dla przeciętnych użytkowników spoza maniaków ... nikogo to nie obchodzi. To smutne.
guettli
2
Moim zdaniem Linux już konkuruje z produktami Apple (i wygrywa za każdym razem). Po prostu nie sądzę, że tagowanie jest tak ważne, ponieważ nikt tak naprawdę nie prosi o to poważnie.
Kaz Wolfe
2
@KazWolfe tak, masz rację, nikt o to nie prosi. Podoba mi się ten cytat: „Gdybym zapytał ludzi, czego chcą, powiedziałby szybsze konie”. - Henry Ford. Co chcę powiedzieć: jeśli istniałby wiarygodny interfejs API do tagowania dostępny we wszystkich dystrybucjach, wiele duplikacji kodu mogłoby zostać usuniętych. Ten sam problem jest rozwiązywany w kółko.
Robią

Odpowiedzi:

5

Najlepszym sposobem wydaje się być tagowanie systemu plików tagi .

Ze strony głównej:

Tagsistant to oparty na znacznikach system plików dla Linuksa, który zamienia katalogi w znaczniki i wyszukuje pliki za Ciebie.

Mount Tagsistant

Po prostu powiedz Tagsistant nazwę katalogu, którego chcesz użyć, na przykład myfiles / in your home. Ten katalog jest teraz specjalnym miejscem z niestandardowymi regułami, które pomagają zarządzać plikami.

$ tagsistant ~/myfiles
$

Utwórz tagi

Pomyśl o katalogach pod tagami / jako białe naklejki, na których piszesz coś na górze. Utwórz tyle tagów, ile potrzebujesz, gotowe do oznaczenia plików.

$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi

Oznacz swoje pliki

Po utworzeniu tagu w tagach /, będzie on dostępny w sklepie /. Skopiuj pliki w nim zawarte: tak otaguj pliki. Znak @ oznacza koniec listy znaczników i jest wymagany.

$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@

Znajdź swoje pliki według tagów

Utwórz zapytanie, wybierając dowolną liczbę tagów. Możesz nawet połączyć wyniki więcej niż jednego zapytania, umieszczając znak + / między nimi, na przykład w startrek / + / starwars /, który łączy pliki oznaczone startrek z plikami oznaczonymi starwars.

$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi

Aktywuj relacje między tagami

$ mkdir ~/myfiles/relations/scifi/includes/startrek
$ ls ~/myfiles/store/scifi/@
first_contact.avi                # 1 file...
$ mkdir ~/myfiles/relations/scifi/includes/starwars
$ ls ~/myfiles/store/scifi/@
first_contact.avi
the_return_of_the_jedi.avi       # 2 files!

Tagsistant rozumie kilka relacji:

  • obejmuje: Jeśli A obejmuje B, każdy plik oznaczony jako B można automatycznie znaleźć wewnątrz A.
  • wyklucza: Jeśli A wyklucza B, żadnego pliku oznaczonego jako B nie można znaleźć wewnątrz A, nawet jeśli jest oznaczony jako A.
  • is_equivalent: Jeśli A jest równoważne B, to wszystkie pliki w A są dostępne w B i odwrotnie.

A jest jeszcze więcej!

Oznacz całe katalogi

$ cp -R ~/Photos/London ~/myfiles/store/photos/@
$ ls -l ~/myfiles/store/photos/@/
London
$ ls -l ~/myfiles/store/photos/@/London/
-rw-------  1 tx0 tx0 2.3M Sep 28  2009 bridge.jpg
-rw-------  1 tx0 tx0 3.0M Aug 30  2011 trafalgar_square.jpg
[ ... more files here ... ]

Dzięki Tagstistant możesz otagować całe katalogi. Sam katalog zostanie oznaczony, a nie pliki w środku, oszczędzając miejsce w db db.

Użyj potrójnych tagów

$ ls ~/myfiles/store/document:/author/eq/Tx0/@ 
$ ls ~/myfiles/store/document:/title/inc/Strategic/@ 
$ ls ~/myfiles/store/pictures:/aperture/gt/5.6/@ 
$ ls ~/myfiles/store/time:/hour/lt/3/@

Znaczniki potrójne są zaawansowanymi znacznikami utworzonymi przez przestrzeń nazw (zakończoną dwukropkiem), która identyfikuje domenę będącą przedmiotem zainteresowania znacznika, klucz kwalifikujący znacznik, operator (równanie dla równości, gt dla wartości większej niż, lt dla mniejszej niż i inc dla obejmuje), a na koniec wartość, która określa ilościowo znacznik.

Wydaje mi się, że jest to najbardziej spójne i eleganckie podejście do oznaczania plików w systemie Linux. Jest dostępny od ponad 10 lat, więc jest to również dojrzałe rozwiązanie, bez ryzyka zniknięcia wkrótce.

emk2203
źródło
4

Podobne pytanie zostało wcześniej zadane: Wybieranie plików z różnych folderów

Czy w Nautilusie można wybrać kilka plików z folderu, a następnie przejść do innego folderu i dodać więcej plików do zaznaczenia?

Przyjęto 6 głosami: „Nie, niestety nie jest to możliwe”. .

Odmawiając zniechęcenia napisałem skrypt bash, aby rozwiązać problem.


Zaczyna Bafman

W odpowiedzi na pytanie, które opracowałem bafman(Born Again File Manager), które odniosło jedynie pewien sukces, ponieważ odpowiedź była niewielka.

Odpowiedź zawiera 13 ekranów, więc oto jeden z nich, który daje ci pomysł:

bafman 12

Bafman powraca

Kod bash został opublikowany w osobnej odpowiedzi poniżej pierwszej, ale zmiany spowodowały, że był zbyt duży, aby zmieścić się w limicie 30 KB, więc odpowiedź została usunięta. Jeśli ktoś jest zainteresowany skryptem bash, chętnie wskrzeszę projekt i opublikuję go w github.

WinEunuuchs2Unix
źródło
To pytanie dotyczy oznaczania plików. Oznacza to, że tagi powinny przetrwać restart. Myślę, że rozwiązanie w twojej odpowiedzi nie pasuje do pytania.
guettli
@guettli Tagi przetrwają ponowne uruchomienie i są przechowywane w .bafmanDirsoraz .bafmanFiles.
WinEunuuchs2Unix
Przepraszam, czytam za szybko. Opracowałeś narzędzie o nazwie bafman. Nie jestem pewien, czy kodowanie jest tutaj właściwe. Może potrzebna byłaby umowa i prosta specyfikacja. Ale kto powinien się zgodzić? Deweloperzy gnome?
guettli
@guettli Nasza siostrzana witryna Software Engineering ma ludzi omawiających zmiany w Gnome Nautilus. Na przykład to pytanie: softwareengineering.stackexchange.com/questions/149824/… Może chcesz się tam zarejestrować i opublikować swój własny pomysł? Jeśli chodzi o tagi poruszające się podczas przenoszenia pliku, jedyne, co mogę wymyślić, to użyć pustego pola atrybutów pliku, takiego jak „Data urodzenia” i zamaskować go flagami. To sprawi, że data urodzenia będzie wyglądać śmiesznie, gdy zostanie wymieniona. Chociaż nieaktywne, pole daty urodzenia będzie wkrótce używane przez nowsze aplikacje.
WinEunuuchs2Unix
3

Jeśli pliki, które chcesz oznaczyć, są hostowane w usłudze Nextcloud w celu udostępniania plików, możesz skorzystać z aplikacji automatycznego oznaczania plików Nextcloud wraz z tagowaniem ręcznym.

Zautomatyzowane tagowanie

Oficjalny opis brzmi:

Aplikacja dla Nextcloud, która automatycznie przypisuje tagi do nowo przesłanych plików na podstawie niektórych warunków.

Znaczniki można później wykorzystać do kontrolowania przechowywania, dostępu do plików, automatycznego wykonywania skryptów i nie tylko.

wprowadź opis zdjęcia tutaj

Działa dla Nextcloud 12 i 13.

Aby zdefiniować tagi, administratorzy mogą tworzyć i zarządzać zestawem grup reguł. Każda grupa reguł składa się z jednej lub więcej reguł połączonych za pomocą operatorów. Reguły mogą obejmować takie kryteria, jak typ pliku, rozmiar, czas i inne. Żądanie pasuje do grupy, jeśli wszystkie reguły mają wartość true. Po przesłaniu pliku oceniane są wszystkie zdefiniowane grupy, a podczas dopasowywania podane tagi są przypisywane do pliku.

Ręczne tagowanie

I tutaj możesz zobaczyć, jak dostępne jest ręczne tagowanie plików od Owncloud / Nextcloud 9.x przy użyciu menedżera plików w widoku internetowym.

GOTCHA

Jeśli chcesz przeszukać tagi za pomocą menedżera plików na pulpicie Ubuntu, może to nie działać, chyba że użyjesz WebDAV do zamontowania udziału sieciowego i zrobienia czegoś z interfejsem API WebDAV Nextcloud .

Lew
źródło
Dziwne, ale prawdziwe, znalazłem oficjalne dokumenty na nextcloud.com o automatycznym tagowaniu, ale nie o ręcznym tagowaniu. Czy jestem ślepy?
guettli
0

Musiałem też otagować pliki i zdecydowałem, że przy braku wbudowanego sposobu robienia tego, zaimplementuję moje tagi w nazwach plików plików. W ten sposób masz pełną moc wyrażeń bash do wyszukiwania plików z określonymi znacznikami, nie ma problemu z utratą znaczników przez cp i mv itp. Znaczniki są widoczne w menedżerze plików GUI.

Na przykład możesz zdecydować o dodaniu (tag1, tag2 ...) ”na końcu każdej z nazw plików.

Edycja: to mi odpowiadało, gdzie moje tagi były bardziej wskazujące przynależność do pliku jednej lub więcej z trzech grup. W przypadku bardziej ogólnego zastosowania tagów łatwiejszą składnią (z bash itp.) Na końcu nazw plików byłoby coś w rodzaju „filename! Tag1! Tag2”.

B.Tanner
źródło
Tak, to działa obejście. Ale to jest obejście. Nie rozwiązanie, nie plan i nie cel.
guettli
Rzeczywiście jest. Jednym z problemów jest to, że jeśli zmienisz znaczniki pliku, nazwa pliku się zmieni, więc jeśli powiesz, że skrypt odwołuje się do pliku, to się zepsuje, chyba że masz przewidywanie, aby odwołać się do pliku w sposób, który pozwala na dowolną liczbę znaczników po podstawowa nazwa pliku.
B.Tanner
@ B.Tanner Możesz uniknąć problemu ze zmianą nazwy, używając nieoznaczonych nazw plików i dodając tagi, tworząc na stałe oznaczone nazwy plików. Skrypty powinny używać nieoznaczonych nazw plików, aby być niezależnym od tagowania.
muclux
@muclux dziękuję, tak świetny pomysł. Dla mnie osobiście jest to tylko problem teoretyczny (nie mam żadnych skryptów, które działałyby na „otagowanych” plikach), ale zawsze miałem nieco niepokojące przeczucie, że mogę zmienić nazwę pliku. Może to być dobry sposób na oddzielenie tagów od rzeczywistych plików. Będę musiał pomyśleć o implikacjach tworzenia kopii zapasowych ...
B.Tanner,