Pytanie:
Wyświetlić wszystkie tagi w Terminalu w Mavericks?
Blaszard
2013-12-01 16:44:13 UTC
view on stackexchange narkive permalink

Czy możliwe jest wyświetlenie wszystkich tagów już zdefiniowanych w OS X w Terminalu?

Wiem, że istnieją aplikacje innych firm, które wyświetlają wszystkie tagi, ale chcę po prostu użyć Terminala, aby znaleźć wszystkie tagi , ponieważ używam tego narzędzia do pracy z tagami w Terminalu (ale niestety narzędzie nie zapewnia listy tagów dla całego systemu - wyświetla tylko jeden lub wiele plików wybranych arbitralnie).

Dzięki.

Podobne: [Lista wszystkich tagów Openmeta i powiązanych plików] (http://apple.stackexchange.com/q/24494/8546) (2011-09-08)
Pięć odpowiedzi:
#1
+6
Lri
2013-12-13 12:56:33 UTC
view on stackexchange narkive permalink

Możesz także użyć tagu:

  tag -tgf \ * | grep '^' | cut -c5- | sort -u  

tag -f \ * znajduje wszystkie pliki z tagami, -t zawiera nazwy tagów w danych wyjściowych, a -g drukuje każdy znacznik w osobnym wierszu.

Brak wzmianki o OpenMeta w pytaniu otwierającym, ale warto zauważyć, że obecna wersja `tagu` nie wymienia tagów OpenMeta na Mavericks.https://github.com/jdberry/tag/issues/17 to „Dodaj ograniczoną obsługę OpenMeta”.
Powinna to być akceptowana odpowiedź, tylko to tworzy tutaj pełną listę tagów.
#2
+5
Matthieu Riegler
2013-12-01 19:19:46 UTC
view on stackexchange narkive permalink

Nazwy tagów znajdują się w ~ / Library / Preferences / com.apple.finder.list .

Możesz go przeczytać z

  defaults read com.apple.finder.plist ViewSettingsDictionary  

Będzie to wymagało trochę analizy, aby trochę jaśniej:

  domyślnie przeczytaj com.apple.finder.plist ViewSettingsDictionary | awk 'NR% 12 == 2' | grep -o '". *"' | sed 's / ^. \ (. * \). \ {18 \} $ / \ 1 /'  

Inną możliwością jest analizowanie plist jako xml. Aby to zrobić, musisz najpierw przekonwertować plik plist z pliku binarnego na XML za pomocą.

plutil -convert xml1 ~ / Library / Preferences / com.apple.finder.plist

Hmmm ... nawet jeśli użyłem `awk`, wynik był niezdarny, ponieważ otrzymałem coś takiego jak` "mytag_Tag_ViewSettings" = {`, ​​gdzie` mytag` jest tym, czego szukam. Dlatego myślę, że znacznie łatwiej jest po prostu otworzyć Findera i przejść do paska tagów. Dziękuję za odpowiedź.
Zaktualizowałem część parsującą, teraz zwraca tylko nazwę :)
Każdy powinien spojrzeć na odpowiedź @TedWise poniżej, wyjaśnia, dlaczego lista uzyskana tą metodą nie jest kompletna.
FYI: W systemie OS X El Capitan równoważne polecenie to `defaults read com.apple.finder.plist FavoriteTagNames`.Jednak ta lista nie zawiera niestandardowych nazw tagów.
To nie powinna być odpowiedź.Po prostu w ogóle nie działa.Nie pokazuje moich niestandardowych tagów.
#3
+4
Ted Wise
2013-12-12 21:04:07 UTC
view on stackexchange narkive permalink

Ta lista nie jest wyczerpująca. To tylko tagi dodane przez Findera. Istnieje dodatkowy plik ~ / Library / SyncedPreferences / com.apple.finder.plist , który zawiera również listę tagów, którymi manipulowano w Finderze.

Jeśli oznaczyłeś plik w Terminal lub inne narzędzie i nigdy nie manipulowałeś tagami w Finderze, wtedy tagi nie będą na żadnej liście.

Oznaczyłem plik za pomocą aplikacji `Tag`, o której wspominali inni.Następnie tag pojawia się na liście Finder> Preferencje> Tagi, więc musi być gdzieś przechowywany.Czy wiemy, gdzie jest przechowywany?
#4
+3
Marko Kaestner
2013-12-17 01:58:37 UTC
view on stackexchange narkive permalink

Możesz także użyć mdfind w połączeniu z mdls, aby uzyskać ten sam wynik:

  / usr / bin / mdfind -0 "(kMDItemUserTags == '*')" | xargs -0 mdls -name kMDItemUserTags | grep '^' | cut -c5- | cut -d, -f 1 | sort -u  

Byłoby interesującym testem porównawczym, który jest szybszy.

#5
+2
jjardine
2014-02-05 20:17:30 UTC
view on stackexchange narkive permalink

Kolor ze ścieżką:

/ usr / bin / mdfind -0 "(kMDItemUserTags == '*')" | xargs -I% sh -c 'echo $ (mdls -name kMDItemUserTags% | grep "^" | cut -c5-)%'



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...