Как я могу применить теги в Mavericks рекурсивно?

9

Теперь, когда Маверикс убрал эту уродливую полосу и заменил ее красивой точкой, я бы хотел больше использовать теги.

В основном у меня есть рабочие файлы в разных местах, которые имеют дело с разными проектами, и я хотел бы применить тег для всех файлов, включенных в определенные папки. Файлы могут перемещаться в новые папки (вне исходной папки) в будущем, поэтому я хотел бы рекурсивно применить тег к папке, чтобы мне было легче найти его, если он будет перемещен из его папки.

Стив В.
источник

Ответы:

7

Вы можете использовать xattr для записи различных метаданных, связанных с «новыми» тегами в Mavericks. Джон Сиракуза сделал тяжёлый подъем уже здесь .

По сути, вам нужно записать в файлы два атрибута, com.apple.FinderInfo и com.apple.metadata: _kMDItemUserTags. Самый простой способ - получить файл, помеченный как вы хотите, и просто скопировать из него атрибуты. Откройте терминал и перейдите в каталог, содержащий папку, которую вы хотите рекурсивно пометить. Затем введите:

touch sampleFile
open .

Это откроет Finder, так что вы можете пометить sampleFile, как вы хотите, чтобы все остальные файлы были помечены. После того, как вы закончите помечать теги, вернитесь в окно терминала и введите:

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`"

Это рекурсивно развернет и пометит все файлы в yourDirName, а также файлы в любых подкаталогах. Вы можете не указывать аргумент -type f, если хотите пометить подкаталоги и файлы.

Наконец, вы можете изменить

find yourDirName -type f

команды для

find yourDirName -iname "*.ext"

если вы хотите пометить только определенные типы файлов / расширений.

Колин С.
источник
Любить это. Я прочитал тот же обзор Ars, и мне было интересно, как я могу прикрепить метаданные, необходимые для каждого файла.
Стив В.
10

Через Macports / Homebrew доступен инструмент тегов CLI: https://github.com/jdberry/tag

Кажется, у него нет опции рекурсии, но я думаю, вы могли бы использовать это вместе со стандартным UNIX 'find'.

например, (из каталога, в котором вы хотите отметить файлы)

find . -exec tag --add tagname {} \;  -print 
Ань В.
источник
Текущая версия (tag v0.8.1) поддерживает рекурсивные теги с использованиемtag -e -d --add tagname path
Munkymorgy
3

Одним из простых способов сделать это является использование поиска Spotlight для генерации списка всех интересующих вас файлов. Пример того, как это сделать:

  • В Finder перейдите к началу интересующей вас структуры папок.
  • Введите -kind:folderв поле поиска Spotlight

    Будет выполнен поиск всех файлов, которые не являются папками ( -знак отменяет результаты).

  • Затем убедитесь, что поиск ограничен интересующей вас иерархией папок, щелкнув имя папки в терминах поиска прямо под полем поиска Spotlight.

Теперь у вас в окне Finder будет список всех файлов в этой иерархии папок. Теперь тривиально выбрать все файлы и применить нужные теги обычным способом с помощью Finder.

Используйте различные поиски Spotlight, чтобы удовлетворить ваши потребности.

Вы можете немного упростить этот процесс, если Spotlight всегда выполняет поиск в текущей папке, а не This Mac:

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

Алекс Д.
источник
1

Перейдите в верхнюю папку и найдите «.» в этой папке.

Выберите все файлы и отметьте их.

Возможно, вам придется удалить тег, а затем повторно применить его.

DcTurner
источник