searchfs
adalah alat baris perintah macOS untuk mencari dengan cepat berdasarkan nama file di seluruh volume APFS dan HFS+. Pencarian dilakukan di tingkat driver menggunakan katalog sistem file. Ini berarti pohon direktori volume dapat dipindai lebih cepat dibandingkan dengan pencarian nama file rekursif standar menggunakan find
.
Pencarian tidak peka huruf besar-kecil secara default. File yang cocok dicetak ke keluaran standar sesuai urutan penemuannya di katalog. Lihat halaman manual untuk detailnya.
KatSearch adalah aplikasi macOS grafis asli yang dibangun di atas searchfs
.
git clone https://github.com/sveinbjornt/searchfs.git
cd searchfs
make
make install
Menginstal biner ke /usr/local/bin/
. Halaman manual masuk ke /usr/local/share/man/man1/
.
Menurut tolok ukur saya, searchfs
berjalan sekitar 35-50% lebih cepat daripada find
di sistem file APFS dan berkali-kali lebih cepat di HFS+.
Berikut adalah hasil benchmark pada Retina MacBook Pro 2012 dengan SSD 512 GB yang disuplai Apple dan menjalankan sistem file APFS yang berisi sekitar 2 juta file:
$ time searchfs " something "
0,01s user 33,15s system 32% cpu 1:23,59 total
$ time find / -name " *something* "
9,53s user 67,64s system 49% cpu 2:37,39 total
Meskipun saya belum mengujinya dengan benar, searchfs
mungkin jauh lebih cepat daripada find
di hard disk drive, yang memiliki waktu pencarian lebih tinggi. Ini juga sangat cepat pada sistem file dengan jumlah file yang sedikit.
Apple menambahkan pencarian katalog sistem file ke Mac OS dengan diperkenalkannya Hiearchical File System (HFS) pada tahun 1985. HFS menggantikan struktur tabel datar sebelumnya di sistem file MFS lama dengan file katalog menggunakan struktur B-tree. Tidak seperti sistem file FAT Windows, HFS (dan yang lebih baru, HFS+) mengatur seluruh pohon direktori menjadi satu file besar di disk, dengan node yang saling terkait yang tidak sesuai dengan struktur folder hierarki. Ini berarti volume dapat dicari dengan sangat cepat berapa pun ukurannya.
Mac OS Klasik mengekspos fungsi ini melalui fungsi FSCatalogSearch(), yang melakukan iterasi secara efisien melalui node, sehingga meminimalkan waktu pencarian disk. Di era sebelum SSD, hal ini memberi Mac keunggulan kinerja yang signifikan dibandingkan Windows dalam hal pencarian volume penuh. Untuk waktu yang lama, FSCatalogSearch terus tersedia di Mac OS X / macOS melalui Carbon API tetapi sekarang sudah tidak digunakan lagi dan tidak mendukung APFS, sistem file baru Apple.
Namun, pencarian katalog untuk HFS+ dan APFS tersedia di perpustakaan sistem tingkat rendah Darwin melalui fungsi searchfs(). Program searchfs
memanfaatkan fungsi ini.
Hak Cipta © 2017-2020 Sveinbjorn Thordarson <[email protected]>
Redistribusi dan penggunaan dalam bentuk sumber dan biner, dengan atau tanpa modifikasi, diperbolehkan asalkan kondisi berikut terpenuhi:
Pendistribusian ulang kode sumber harus tetap memperhatikan pemberitahuan hak cipta di atas, daftar ketentuan ini, dan penafian berikut.
Redistribusi dalam bentuk biner harus mereproduksi pemberitahuan hak cipta di atas, daftar ketentuan ini dan penafian berikut dalam dokumentasi dan/atau materi lain yang disediakan bersama distribusi.
Baik nama pemegang hak cipta maupun nama kontributornya tidak boleh digunakan untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak ini tanpa izin tertulis khusus sebelumnya.
PERANGKAT LUNAK INI DISEDIAKAN OLEH PEMEGANG HAK CIPTA DAN KONTRIBUTOR "APA ADANYA" DAN JAMINAN TERSURAT MAUPUN TERSIRAT, TERMASUK, NAMUN TIDAK TERBATAS PADA, JAMINAN TERSIRAT ATAS KELAYAKAN UNTUK DIPERDAGANGKAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU DITOLAK. DALAM KEADAAN APA PUN PEMEGANG HAK CIPTA ATAU KONTRIBUTOR TIDAK BERTANGGUNG JAWAB ATAS KERUSAKAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, KHUSUS, CONTOH, ATAU KONSEKUENSIAL (TERMASUK, NAMUN TIDAK TERBATAS PADA, PENGADAAN BARANG ATAU JASA PENGGANTI; KEHILANGAN PENGGUNAAN, DATA, ATAU KEUNTUNGAN; ATAU BISNIS GANGGUAN) APAPUN PENYEBABNYA DAN PADA TEORI TANGGUNG JAWAB APA PUN, BAIK DALAM KONTRAK, TANGGUNG JAWAB KETAT, ATAU HUKUM (TERMASUK KELALAIAN ATAU LAINNYA) YANG TIMBUL DALAM PENGGUNAAN PERANGKAT LUNAK INI, MESKIPUN DIBERITAHU TENTANG KEMUNGKINAN KERUSAKAN TERSEBUT.