Jak stosować rekurencyjnie tagi w Mavericks?

9

Teraz, gdy Mavericks usunął ten brzydki kolorowy pasek i zastąpił go ładnie wyglądającą kropką, chciałbym więcej używać tagów.

Zasadniczo mam pliki robocze w różnych miejscach, które dotyczą różnych projektów i chciałbym zastosować znacznik do wszystkich plików zawartych w określonych folderach. Pliki mogą w przyszłości przenosić się do nowych folderów (poza oryginalnym folderem), dlatego chciałbym zastosować znacznik rekurencyjnie do folderu, aby łatwiej go znaleźć, jeśli zostanie przeniesiony z tego folderu.

Steve W.
źródło

Odpowiedzi:

7

Za pomocą xattr można pisać różne metadane związane z „nowymi” znacznikami w Mavericks. John Siracusa wykonał ciężkie podnoszenie już tutaj .

Zasadniczo musisz zapisać do plików dwa atrybuty com.apple.FinderInfo i com.apple.metadata: _kMDItemUserTags. Najprostszym sposobem będzie oznaczenie pliku tak, jak chcesz i po prostu skopiowanie z niego atrybutów. Otwórz terminal i przejdź do katalogu zawierającego folder, który chcesz oznaczyć rekurencyjnie. Następnie wprowadź:

touch sampleFile
open .

Otworzy się Finder, dzięki czemu możesz oznaczyć plik sampleFile w taki sposób, w jaki chcesz oznaczyć wszystkie pozostałe pliki. Po zakończeniu tagowania przełącz się z powrotem do okna terminala i wprowadź:

find yourDirName -type f | xargs xattr -wx com.apple.FinderInfo \
"`xattr -px sampleFile`"

find yourDirName -type f | xargs xattr -wx com.apple.metadata:_kMDItemUserTags \
"`xattr -px com.apple.metadata:_kMDItemUserTags sampleFile`"

Spowoduje to rekursywne drążenie w dół i oznaczenie wszystkich plików w twojejDirName, a także plików w dowolnych podkatalogach. Możesz pozostawić argument -type f wyłączony, jeśli chcesz oznaczyć podkatalogi oraz pliki.

Wreszcie możesz zmienić

find yourDirName -type f

polecenia do

find yourDirName -iname "*.ext"

jeśli chcesz oznaczyć tylko niektóre typy plików / rozszerzenia.

Colin C.
źródło
Kocham to. Przeczytałem tę samą recenzję Ars i zastanawiałem się, jak mogę dołączyć potrzebne metadane do każdego pliku.
Steve W.
10

Narzędzie tagów CLI jest dostępne za pośrednictwem Macports / Homebrew: https://github.com/jdberry/tag

Wydaje się, że nie ma opcji rekurencji, ale wyobrażam sobie, że możesz użyć tego w połączeniu ze standardowym „znajdowaniem” UNIX.

np. (z katalogu, w którym chcesz oznaczyć pliki)

find . -exec tag --add tagname {} \;  -print 
Anh Q.
źródło
Obecna wersja (tag v0.8.1) obsługuje rekurencyjne tagowanie przy użyciutag -e -d --add tagname path
Munkymorgy
3

Jednym prostym sposobem na to jest skorzystanie z wyszukiwania Spotlight w celu wygenerowania listy wszystkich plików, które Cię interesują. Przykład tego:

  • W Finderze przejdź do górnej części struktury folderów, która Cię interesuje.
  • Wpisz -kind:folderw polu wyszukiwania Spotlight

    Spowoduje to wyszukanie wszystkich plików, które nie są folderem ( -znak neguje wyniki).

  • Upewnij się, że ograniczysz wyszukiwanie do hierarchii folderów, którą jesteś zainteresowany, klikając nazwę folderu w wyszukiwanych hasłach tuż pod polem wyszukiwania Spotlight.

W oknie Findera pojawi się lista wszystkich plików w tej hierarchii folderów. Teraz wybranie wszystkich plików jest banalne i zastosowanie odpowiednich tagów w zwykły sposób za pomocą Findera.

Używaj różnych wyszukiwań Spotlight w zależności od potrzeb.

Możesz nieco ułatwić ten proces, sprawiając, że Spotlight zawsze szuka w bieżącym folderze, a nie This Mac:

Finder -> Preferences -> Advanced -> When performing a search: Search the current folder

Alex D.
źródło
1

Przejdź do górnego folderu i wyszukaj „.” w tym folderze.

Wybierz wszystkie pliki i oznacz je.

Być może trzeba będzie usunąć tag, a następnie ponownie go zastosować.

DcTurner
źródło