Panduan Penggunaan Perintah `find` - wongganteng10/tutorial GitHub Wiki

Panduan Penggunaan Perintah find

Perintah find digunakan untuk mencari file dan direktori dalam hierarki direktori.

Format Umum

find [path...] [expression]

path: Lokasi direktori tempat pencarian dimulai. Secara default adalah direktori saat ini.

expression: Ekspresi pencarian yang dapat terdiri dari operator, opsi, tes, dan aksi.

Operator (Urutan Precedence Menurun)

  • ( EXPR ): Menandakan grup ekspresi.
  • ! EXPR atau -not EXPR: Negasi dari ekspresi.
  • EXPR1 -a EXPR2 atau EXPR1 -and EXPR2: Dan logika (implicit).
  • EXPR1 -o EXPR2 atau EXPR1 -or EXPR2: Atau logika.
  • EXPR1 , EXPR2: Evaluasi ekspresi pertama, lalu yang kedua.

Opsi Posisi (Selalu True)

  • -daystart: Menghitung waktu dari awal hari saat ini.
  • -follow: Mengikuti link simbolik.
  • -regextype: Menentukan jenis ekspresi reguler.

Opsi Normal (Selalu True, Ditentukan Sebelum Ekspresi Lain)

  • -depth: Mencari dari kedalaman terdalam ke teratas.
  • --help: Menampilkan pesan bantuan.
  • -maxdepth LEVELS: Menentukan kedalaman maksimum pencarian.
  • -mindepth LEVELS: Menentukan kedalaman minimum pencarian.
  • -mount: Jangan melintasi sistem file yang berbeda.
  • -noleaf: Tidak mengabaikan direktori yang tidak memiliki leaf nodes.
  • --version: Menampilkan nomor versi.
  • -xdev: Jangan melintasi sistem file yang berbeda.
  • -ignore_readdir_race: Mengabaikan kondisi balapan pembacaan direktori.
  • -noignore_readdir_race: Tidak mengabaikan kondisi balapan pembacaan direktori.

Tes (N bisa +N atau -N atau N)

  • -amin N: Waktu akses terakhir dalam N menit.
  • -anewer FILE: File diubah setelah FILE.
  • -atime N: Akses terakhir N hari yang lalu.
  • -cmin N: Waktu status terakhir dalam N menit.
  • -cnewer FILE: Status file diperbarui setelah FILE.
  • -ctime N: Status file terakhir diperbarui N hari yang lalu.
  • -empty: File atau direktori kosong.
  • -false: Selalu false.
  • -fstype TYPE: Jenis sistem file.
  • -gid N: ID grup.
  • -group NAME: Nama grup.
  • -ilname PATTERN: Nama link simbolik (case-sensitive).
  • -iname PATTERN: Nama file (case-insensitive).
  • -inum N: Nomor inode.
  • -iwholename PATTERN: Nama file penuh (case-insensitive).
  • -iregex PATTERN: Ekspresi reguler (case-insensitive).
  • -links N: Jumlah link ke file.
  • -lname PATTERN: Nama link simbolik.
  • -mmin N: Terubah dalam N menit.
  • -mtime N: Terubah N hari yang lalu.
  • -name PATTERN: Nama file.
  • -newer FILE: File diperbarui setelah FILE.
  • -nouser: File yang dimiliki oleh pengguna yang tidak ada.
  • -nogroup: File yang dimiliki oleh grup yang tidak ada.
  • -path PATTERN: Path file.
  • -perm [-/]MODE: Izin file.
  • -regex PATTERN: Ekspresi reguler.
  • -readable: File dapat dibaca.
  • -writable: File dapat ditulis.
  • -executable: File dapat dieksekusi.
  • -wholename PATTERN: Nama file penuh.
  • -size N[bcwkMG]: Ukuran file.
  • -true: Selalu true.
  • -type [bcdpflsD]: Tipe file (b=blok, c=karakter, d=direktori, p=FIFO, f=file biasa, l=link simbolik, s=socket, D=door).
  • -uid N: ID pengguna.
  • -used N: Terpakai dalam N hari.
  • -user NAME: Nama pengguna.
  • -xtype [bcdpfls]: Tipe file yang ditunjuk oleh link simbolik.

Aksi

  • -delete: Menghapus file yang ditemukan.
  • -print0: Menampilkan nama file diikuti dengan null karakter.
  • -printf FORMAT: Menampilkan format file.
  • -fprintf FILE FORMAT: Menampilkan format ke file.
  • -print: Menampilkan nama file.
  • -fprint0 FILE: Menulis nama file ke FILE dengan null karakter.
  • -fprint FILE: Menulis nama file ke FILE.
  • -ls: Menampilkan daftar file mirip dengan ls -l.
  • -fls FILE: Menulis daftar file mirip dengan ls -l ke FILE.
  • -prune: Mengabaikan direktori.
  • -quit: Menghentikan pencarian setelah file pertama ditemukan.
  • -exec COMMAND ;: Menjalankan COMMAND untuk setiap file yang ditemukan.
  • -exec COMMAND {} +: Menjalankan COMMAND dengan beberapa file.
  • -ok COMMAND ;: Menjalankan COMMAND setelah konfirmasi.
  • -execdir COMMAND ;: Menjalankan COMMAND dari direktori yang ditemukan.
  • -execdir COMMAND {} +: Menjalankan COMMAND dari direktori yang ditemukan dengan beberapa file.
  • -okdir COMMAND ;: Menjalankan COMMAND dari direktori yang ditemukan setelah konfirmasi.

Argumen Valid untuk -D

  • exec, opt, rates, search, stat, time, tree, all, help

Gunakan -D help untuk deskripsi opsi, atau lihat dokumentasi di GNU findutils.

Anda dapat melaporkan (dan melacak kemajuan perbaikan) bug pada program "find" melalui halaman pelaporan bug GNU findutils atau, jika Anda tidak memiliki akses web, dengan mengirim email ke [email protected].


Gunakan panduan ini untuk memanfaatkan find secara efektif dalam pencarian file dan direktori di sistem Ubuntu Anda.





Berikut adalah cara lengkap menggunakan perintah find di Linux, dengan contoh untuk masing-masing opsi dan ekspresi:

1. Pencarian Dasar

Mencari Semua File di Direktori Saat Ini:

find .

Mencari Semua File di Direktori Tertentu:

find /path/to/directory

2. Menggunakan Ekspresi

Mencetak Nama Semua File:

find . -print

Mencetak Nama Semua File dan Menggunakan Null Karakter sebagai Pemisah:

find . -print0

3. Opsi

Menampilkan Bantuan:

find --help

Menampilkan Versi:

find --version

Menentukan Kedalaman Maksimum:

find . -maxdepth 2

Menentukan Kedalaman Minimum:

find . -mindepth 2

Tidak Melintasi Sistem File Berbeda:

find . -xdev

Mengabaikan Kondisi Balapan Pembacaan Direktori:

find . -ignore_readdir_race

4. Tes

Mencari File yang Terakhir Diakses Dalam 10 Menit Terakhir:

find . -amin 10

Mencari File yang Diubah Setelah File Tertentu:

find . -newer /path/to/otherfile

Mencari File Kosong:

find . -empty

Mencari File dengan Nama Spesifik (Case-Insensitive):

find . -iname "*.txt"

Mencari File dengan Ukuran Lebih dari 1MB:

find . -size +1M

Mencari File dengan Tipe Tertentu:

  • File Biasa:
    find . -type f
    
  • Direktori:
    find . -type d
    

Mencari File yang Dimiliki oleh Pengguna Tertentu:

find . -user username

5. Aksi

Menghapus File yang Ditemukan:

find . -type f -delete

Menampilkan Daftar File Mirip dengan ls -l:

find . -ls

Menjalankan Perintah pada Setiap File yang Ditemukan:

find . -type f -exec ls -l {} \;

Menjalankan Perintah pada Sekelompok File:

find . -type f -exec ls -l {} +

Menjalankan Perintah Setelah Konfirmasi:

find . -type f -ok rm {} \;

Menjalankan Perintah pada File yang Ditemukan di Direktori yang Sama:

find . -type f -execdir ls -l {} \;

Menjalankan Perintah Setelah Konfirmasi di Direktori yang Sama:

find . -type f -okdir ls -l {} \;

6. Ekspresi dan Operator

Mencari File yang Diubah Dalam 7 Hari Terakhir dan Lebih dari 1MB:

find . -mtime -7 -size +1M

Mencari File yang Tidak Ditemukan:

find . -not -name "*.txt"

Mencari File yang Dimiliki oleh Pengguna Tertentu atau Grup Tertentu:

find . \( -user username -o -group groupname \)

Mencari File yang Tidak Ditemukan dan Menampilkan Nama File:

find . -type f ! -name "*.txt" -print

Mencari File dengan Nama Tertentu dan Menjalankan Perintah di Direktori Tertentu:

find . -type f -name "*.log" -execdir grep "search_term" {} \;

7. Debugging

Menampilkan Debugging Output untuk Pencarian:

find . -D help

Menampilkan Debugging Output untuk Opsi Tertentu:

find . -D exec

Gunakan panduan ini untuk menjalankan pencarian file dan direktori yang canggih di sistem Linux Anda menggunakan find.