Bagaimana saya bisa menerapkan tag di Mavericks secara rekursif?

9

Sekarang Mavericks menghapus bilah berwarna jelek dan menggantinya dengan titik yang terlihat bagus, saya ingin menggunakan tag lebih banyak.

Pada dasarnya saya memiliki file kerja di berbagai tempat yang berhubungan dengan proyek yang berbeda dan saya ingin menerapkan tag untuk semua file yang termasuk dalam folder tertentu. File-file tersebut mungkin akan berpindah ke folder baru (di luar folder asli) di masa depan jadi saya ingin menerapkan tag secara rekursif ke folder sehingga saya dapat menemukan lebih mudah jika dipindahkan dari foldernya.

Steve W.
sumber

Jawaban:

7

Anda dapat menggunakan xattr untuk menulis berbagai metadata yang terkait dengan tag "baru" di Mavericks. John Siracusa sudah melakukan pekerjaan berat di sini .

Pada dasarnya Anda perlu menulis dua atribut, com.apple.FinderInfo dan com.apple.metadata: _kMDItemUserTags, ke file. Cara termudah adalah dengan mendapatkan file yang ditandai sesuai keinginan Anda dan salin atributnya saja. Buka terminal dan ubah ke direktori yang berisi folder yang ingin Anda tandai secara rekursif. Lalu masukkan:

touch sampleFile
open .

Itu akan membuka Finder sehingga Anda bisa memberi tag sampleFile bagaimana Anda ingin semua file lainnya ditandai. Setelah Anda selesai menandai, beralih kembali ke jendela terminal Anda dan masukkan:

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

Itu akan secara rekursif menelusuri dan menandai semua file di YourDirName serta file di subdirektori apa pun. Anda dapat mengabaikan argumen -type f jika Anda ingin menandai subdirektori serta file-file.

Akhirnya, Anda dapat mengubah

find yourDirName -type f

perintah untuk

find yourDirName -iname "*.ext"

jika Anda hanya ingin menandai jenis / ekstensi file tertentu.

Colin C.
sumber
Suka. Saya membaca ulasan Ars yang sama dan saya bertanya-tanya bagaimana saya bisa melampirkan metadata yang diperlukan untuk setiap file.
Steve W.
10

Ada alat tag CLI yang tersedia melalui Macports / Homebrew: https://github.com/jdberry/tag

Tampaknya tidak memiliki opsi rekursi, namun, saya akan membayangkan Anda bisa menggunakan ini bersamaan dengan 'find' standar UNIX.

mis., (dari dalam direktori Anda ingin memberi tag file)

find . -exec tag --add tagname {} \;  -print 
Anh Q.
sumber
Versi saat ini (tag v0.8.1) mendukung penandaan tag -e -d --add tagname path
berulang
3

Salah satu cara sederhana untuk melakukan ini adalah menggunakan pencarian Spotlight untuk menghasilkan daftar semua file yang Anda minati. Contoh cara melakukannya:

  • Di Finder, navigasikan ke bagian atas struktur folder yang Anda minati.
  • Ketik -kind:folderdalam bidang pencarian Spotlight

    Ini akan mencari semua file yang bukan folder ( -tanda meniadakan hasil).

  • Pastikan Anda kemudian membatasi pencarian ke hierarki folder yang Anda minati dengan mengklik nama folder dalam istilah pencarian tepat di bawah bidang pencarian Spotlight.

Anda sekarang akan memiliki daftar di jendela Finder Anda dari semua file dalam hierarki folder itu. Sekarang sepele untuk memilih semua file, dan menerapkan tag yang Anda inginkan dengan cara biasa dengan Finder.

Gunakan berbagai pencarian Spotlight yang sesuai dengan kebutuhan Anda.

Anda dapat membuat proses ini sedikit lebih mudah dengan membuat Spotlight selalu mencari di folder saat ini dan tidak This Mac:

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

Alex D.
sumber
1

Buka folder paling atas dan cari '.' dalam folder itu.

Pilih semua file dan beri tag mereka.

Anda mungkin perlu menghapus tag kemudian menerapkannya kembali.

DcTurner
sumber