Например, предположим, что у меня есть структура каталогов, такая как
/Users
/tlehman
/Math
algebraic_varieties.tex [tagged: Math, Documentation]
projective_geometry.pdf [tagged: Math]
/Development
visualize_surfaces.py [tagged: Math, Programming]
solve_polynomials.scm [tagged: Math]
/guest
/Desktop
welcome.rtf [tagged: Documentation]
/Volumes
/USBKey
assignments_for_may.txt [tagged: Math]
using_LaTeX.pdf [tagged: Documentation]
Есть ли способ из командной строки использовать ls
(или что-то подобное) для отображения всех файлов, помеченных как «Математика»?
РЕДАКТИРОВАТЬ: я сделал инструмент tfind
, который делает это: https://github.com/tlehman/bin/blob/master/tfind
Я предполагаю, что они будут xattr , как сейчас на 10.8.3 (и старше).
В настоящее время вы можете просмотреть, какие расширенные атрибуты имеет файл с расширением ls -l@
.
Но чтобы увидеть содержимое атрибутов, вы должны использовать xattr
.
xattr -pl com.apple.metadata:_kMDItemUserTags filename
. Однако это был не очень дружественный выход.Да, вы можете найти файлы с заданным пользовательским тегом, используя расширение mdfind
.
Создайте файл и назначьте ему пользовательский тег в Finder.
Затем войдите в терминал; вы найдете его с:
mdfind "kMDItemUserTags == Math || kMDItemUserTags == Programming"
или
mdfind "kMDItemUserTags == Math && kMDItemUserTags == Programming"
См. также -onlyin aFolder
, чтобы ограничить поиск.
Я не проверял, насколько сложными могут быть эти логические выражения, но эти два примера работают.
Вы можете передать вывод ls
следующим образом:
mdfind "kMDItemUserTags == mathTag || kMDItemUserTags == anotherTag" \
| while read f; do ls "$f"; md5 "$f"; done
Также у mdfind есть опция "-0"
-0 Use NUL (``\0'') as a path separator, for use with xargs -0.
что может быть практично с неприятными именами файлов.
mdfind
синтаксис для тегов, например: mdfind "tag:Math"
,mdfind "tag:Math OR tag:Programming"
Вы можете получить все теги файла с помощью:
mdls -name kMDItemUserTags filename
Манкофф
Крис Коновер
tag
Джеймса Берри вhttps://github.com/jdberry
. Вы можете установить его черезbrew install tag
, добавить тег черезtag -a <tag> <file>
, найти теги черезtag -f <tag1, tag2>
. Очень удобно, постоянно пользуюсь.Джей
tag
команду. Устанавливается через brew очень легко.