I tag OSX Mavericks sono visibili dalla riga di comando?

13

Ad esempio, supponiamo di avere una struttura di directory come

/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]

Dalla riga di comando, c'è un modo in cui posso usare ls (o qualcosa del genere) per visualizzare tutti i file etichettati come "Math"?

EDIT: ho creato uno strumento chiamato tfind che esegue questo: link

    
posta tlehman 14.06.2013 - 18:29
fonte

3 risposte

11

Suppongo che saranno un xattr come se fossero attualmente su 10.8.3 (e più vecchi)

Attualmente puoi visualizzare gli attributi estesi di un file con ls -l@ .

Ma per vedere il contenuto degli attributi, devi usare xattr .

    
risposta data 14.06.2013 - 18:54
fonte
13

Sì, puoi trovare i file con un determinato tag utente utilizzando mdfind .

Crea un file e assegnagli un tag personalizzato in Finder.

Quindi vai in un terminale; lo troverai con:

mdfind "kMDItemUserTags == Math || kMDItemUserTags == Programming"

o

mdfind "kMDItemUserTags == Math && kMDItemUserTags == Programming"

Vedi anche -onlyin aFolder per limitare la ricerca.

Non ho controllato quanto siano complesse queste espressioni booleane, ma questi due esempi funzionano.

Puoi reindirizzare l'output a ls in questo modo:

mdfind "kMDItemUserTags == mathTag || kMDItemUserTags == anotherTag" \
| while read f; do ls "$f"; md5 "$f"; done

Inoltre, mdfind ha un'opzione "-0"

    -0                Use NUL (''
mdfind "kMDItemUserTags == Math || kMDItemUserTags == Programming"
'') as a path separator, for use with xargs -0.

che può essere pratico con brutti nomi di file.

    
risposta data 23.10.2013 - 17:50
fonte
4

Puoi ottenere tutti i tag di un file con:

mdls -name kMDItemUserTags filename

    
risposta data 23.10.2013 - 01:22
fonte

Leggi altre domande sui tag