Belajar dengan membaca secara berurutan

Menemukan File — find dan Wildcard

Pelajari cara menentukan banyak nama file sekaligus dengan wildcard * ? [], dan cara find mencari berdasarkan nama dengan -name dan berdasarkan tipe dengan -type — praktik langsung di terminal browser.

Wildcard — * ? []

Wildcard adalah simbol untuk menentukan sebagian nama file sekaligus.

* cocok dengan rentetan nol karakter atau lebih, ? cocok dengan tepat satu karakter, dan [] cocok dengan salah satu karakter di dalam tanda kurung siku.

Gabungkan dengan ls, seperti ls *.txt, untuk menampilkan hanya nama yang cocok.

Apa yang dicocokkan setiap wildcard
*.txtfile?.logdata[12].csvsemua file berakhiran .txtsatu karakter setelah filedata1.csv atau data2.csv
* cocok dengan rentetan apa pun, ? cocok dengan satu karakter, dan [] cocok dengan salah satu karakter di dalam tanda kurung siku.
SimbolYang dicocokkanContohFile yang cocok
*Rentetan nol karakter atau lebih*.txta.txt note.txt
?Tepat satu karakterlog?.txtlog1.txt (log10.txt tidak cocok)
[...]Salah satu karakter di dalam tanda kurung sikulog[12].txtlog1.txt log2.txt
[a-c]Salah satu karakter dalam rentangf[a-c].txtfa.txt fb.txt fc.txt
touch a.txt b.txt note.log         # buat file bahan
ls *.txt                           # a.txt b.txt
ls *.log                           # note.log
ls ?.txt                           # a.txt b.txt (satu karakter + .txt)

① Buat tiga file dengan ekstensi berbeda menggunakan touch a.txt b.txt note.log.

② Gabungkan wildcard dengan ls untuk menampilkan hanya file yang berakhiran .txt.

③ Lalu tampilkan hanya file yang berakhiran .log, dan pastikan kamu bisa mempersempit berdasarkan nama. (Jalankan dengan benar dan penjelasan akan muncul.)

Linux console
0 / 3 selesai
Loading Linux Terminal...

Satu Karakter atau Pilihan — ? dan []

? selalu cocok dengan tepat satu karakter, jadi pakai saat kamu ingin menetapkan jumlah karakter.

[] cocok dengan salah satu karakter yang ditulis di dalam tanda kurung siku, jadi [12] adalah 1 atau 2, dan kamu bisa menulis rentang seperti [a-c].

Keduanya mempersempit target lebih halus daripada *.

touch log1.txt log2.txt log9.txt logA.txt   # buat bahan
ls log?.txt                                  # 4 file dengan satu karakter di akhir
ls log[12].txt                               # hanya log1.txt log2.txt

① Buat empat file bernama berurutan dengan touch log1.txt log2.txt log9.txt logA.txt.

② Gabungkan ls dengan ? untuk menampilkan file di mana log diikuti satu karakter dan berakhiran .txt.

③ Gunakan [] untuk mempersempit ke hanya log1.txt dan log2.txt. Lalu pastikan rentang seperti [1-2] mempersempit ke 2 file yang sama.

Linux console
0 / 3 selesai
Loading Linux Terminal...

Mencari Berdasarkan Kondisi — find -name / -type

find menelusuri secara rekursif di bawah direktori awal dan mencari hal yang cocok dengan suatu kondisi.

Dengan find awal -name 'pola' kamu memberikan kondisi pada nama, dan dengan -type f (file) atau -type d (direktori) kamu memberikan kondisi pada tipe.

Pakai untuk menemukan file berdasarkan nama saat file itu terkubur dalam di hierarki.

KondisiArtiContoh
-name 'pola'Nama cocok dengan polafind . -name '*.log'
-type fHanya file biasafind . -type f
-type dHanya direktorifind . -type d
Kondisi find dan yang dicocokkannya
find . -name '*.txt'find . -type ffind . -type ditem bernama .txthanya filehanya direktori
-name menyaring berdasarkan pola nama, -type f berdasarkan file, dan -type d berdasarkan direktori.
mkdir -p tree/sub                  # buat pohon bahan
touch tree/a.txt tree/sub/b.txt    # tempatkan file di hierarki
find tree -name '*.txt'            # cari .txt di bawah tree secara rekursif
find tree -type d                  # hanya direktori di bawah tree

Beri tanda kutip pada pola find

Bungkus '*.txt' dalam find . -name '*.txt' dengan tanda kutip tunggal.

Tanpa tanda kutip, shell mengembangkan * terlebih dahulu, yang bisa menargetkan sesuatu selain yang kamu maksudkan.

Aturan dasarnya adalah memberi tanda kutip pada pola -name dan meneruskannya ke find itu sendiri.

① Buat direktori dua tingkat dengan mkdir -p tree/sub.

② Tempatkan file di induk maupun subdirektori dengan touch tree/a.txt tree/sub/b.txt.

③ Berikan tree ke find sebagai titik awal dan cari file .txt secara rekursif berdasarkan kondisi nama.

④ Lalu tampilkan hanya file berdasarkan kondisi tipe (find tree -type f), tampilkan juga hanya direktori, dan bandingkan ketiga hasilnya.

Linux console
0 / 5 selesai
Loading Linux Terminal...
QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Apa yang dicocokkan wildcard *?

Soal 2File mana yang dicocokkan ls log[12].txt?

Soal 3Apa yang ditampilkan saat kamu menjalankan find tree -type d?