Cara bermain Jejak Berkas
- Baca instruksi level. Pohon folder menandai berkas yang dicari dengan garis putus-putus.
- Ketik perintah lalu tekan Enter. Berkas yang ditemukan perintahmu berubah hijau kalau memang dicari, dan merah kalau bukan.
- Bandingkan kotak hasil yang dicari dengan hasilmu.
./docs/a.txtdandocs/a.txtdianggap sama. - Tekan Cek jawaban atau Ctrl + Enter. Yang dicek hasil terakhir di terminal, jadi urutan opsi boleh berbeda selama hasilnya sama.
- Kalau buntu, buka Petunjuk. Salah ketik tidak apa-apa; kamu bisa membatalkan perintah terakhir atau menekan Ulang.
Yang kamu pelajari
- Level 1
find -name
Menjelajah folder awal sampai ke subfolder terdalam dan menampilkan nama yang cocok dengan pola.
- Level 2
Pola dalam tanda kutip
Tanpa kutip, bash mengganti
*.logdengan nama berkas di folder sekarang sebelumfindjalan. - Level 3
Folder awal
Kata sesudah
findmenentukan dari mana pencarian dimulai, boleh lebih dari satu. - Level 4
-type d dan -type f
Menyaring hanya folder atau hanya berkas biasa.
- Level 6
-iname
Seperti
-name, tapi huruf besar dan kecil dianggap sama. - Level 7
find | wc -l
findmenulis satu path per baris, jadiwc -lmenghitung jumlah temuannya. - Level 8
grep -r
Mencari isi di semua berkas dalam folder, hasilnya diawali nama berkas.
- Level 9
grep -l dan -n
-lhanya menulis nama berkas yang cocok,-nmenambahkan nomor baris.
find mencari nama, grep -r mencari isi
find . -name "*.js" tidak membuka satu berkas pun. Ia hanya melihat nama dan jenis setiap entri di pohon folder. Karena itu cepat, tapi tidak tahu isi berkas.
grep -r TODO . membaca isi setiap berkas, baris demi baris. Kalau yang kamu ingat isinya (nama fungsi, pesan error), pakai grep -r. Kalau yang kamu ingat namanya atau ekstensinya, pakai find.
Tanya jawab
Apakah harus daftar akun untuk bermain?
Tidak. Semua level bisa dimainkan tanpa akun. Kemajuanmu disimpan di browser yang kamu pakai.
Kenapa find . -name *.log kadang error dan kadang jalan?
Bash mengganti *.log dengan nama berkas yang cocok di folder sekarang sebelum find dijalankan. Kalau ada dua berkas, find menerima kata lebih dan menolak. Kalau ada satu, find diam-diam hanya mencari nama itu. Kalau tidak ada, polanya sampai utuh. Selalu kutip polanya: -name "*.log".
Saya pakai Windows. Apa padanannya?
Di PowerShell, Get-ChildItem -Recurse -Filter *.log setara find . -name "*.log", dan Get-ChildItem -Recurse -File | Select-String TODO setara grep -r TODO .. Perintah find dan grep aslinya tersedia di Git Bash dan WSL. Hati-hati: find bawaan Windows (find.exe) adalah perintah lain yang mencari teks di berkas.
Apakah urutan hasil find selalu abjad?
Tidak. find asli mengikuti urutan entri di disk, jadi urutannya bisa berbeda di tiap komputer. Game ini mengurutkan sesuai abjad supaya hasilnya bisa dibandingkan. Kalau butuh urutan tetap, sambung dengan | sort.
Perintah apa saja yang bisa dipakai?
Semua perintah Rumah Berkas dan Saluran Log, ditambah find dengan -name, -iname, dan -type f/-type d, serta grep dengan -r, -l, -n, -i, -v, dan -c. Opsi find lain seperti -exec, -size, dan -mtime belum ada.