Cara menggunakan perintah find. Cara menemukan file di Linux menggunakan perintah find

Anda mungkin akrab dengan masalah berikut: Ada file, dan Anda tidak ingat di mana Anda meletakkannya.

Perintah find berguna dalam kasus ini. Bagaimana cara menggunakannya? Tentu saja, utilitas ini dilengkapi dengan halaman manual yang besar, tetapi kami akan membahas beberapa kasus umum. Jelajahi pohon direktori dimulai dengan yang sekarang dan temukan file lostfile.txt:

Jika Anda mencari di pohon direktori besar, perintah find bisa sangat lambat. Terkadang lebih nyaman menggunakan perintah locate. Itu tidak mencari file secara langsung di sistem file, tetapi mencari database-nya. Metode ini jauh lebih cepat, tetapi database bisa menjadi ketinggalan zaman. Di beberapa distribusi, database ini dimodifikasi setiap malam. Anda dapat menjalankan perintah updatedb secara manual dari waktu ke waktu untuk memodifikasinya. cari mencari substring:

Jumlah kesalahan ejaan yang diizinkan tergantung pada panjang nama file, tetapi dapat diatur dengan opsi -t. Untuk mengatasi maksimal 2 kesalahan dan menggunakan wildcard, cukup ketik:

Ikhtisar pohon direktori

Terkadang perlu untuk mendapatkan gambaran umum tentang pohon direktori. Misalnya, Anda menerima CD-ROM baru dan ingin tahu isinya. Anda bisa menggunakan ls - R. Secara pribadi, saya lebih suka salah satu dari yang berikut untuk keterbacaan. cara berikut... Pohon (sunsite.unc.edu/pub/Linux/utils/file/tree-1.2.tgz) menampilkan pohon direktori sebagai diagram.

Atau gunakan temuan lama yang bagus. Dalam versi Gnu find yang biasanya disertakan dengan Linux, dimungkinkan untuk mengubah format output yang akan ditampilkan, misalnya, nama file dan ukurannya:

Anda dapat menggunakan rutinitas perl kecil yang bekerja dengan perintah ls untuk melakukan hal semacam ini. Itu dapat diunduh dari sini: lsperl.gz. Ada banyak utilitas penelusuran pohon direktori lain yang tersedia, tetapi ini cukup untuk sebagian besar kasus.

Cari file berdasarkan konten (cari string teks dalam file).

Utilitas standar untuk menemukan string teks dalam file adalah grep / egrep untuk pencarian ekspresi reguler dan fgrep untuk string literal. Untuk mencari ekspresi di semua file di direktori saat ini, cukup ketik:

Jika Anda kesulitan mengingat perintah yang panjang ini, gunakan skrip kecil yang dapat diunduh dari sini: grepfind.gz. Skrip juga menghapus karakter yang tidak dapat dicetak dari string pencarian sehingga Anda tidak secara tidak sengaja berakhir dengan biner sebagai hasil dari pencarian egrep.

Sangat program yang menarik cari - setuju. Agrep pada dasarnya bekerja seperti egrep, tetapi memungkinkan pencarian yang salah eja. Untuk mencari ekspresi dan menyelesaikan maksimal 2 kesalahan ejaan, ketik:

Setelah itu, Anda dapat mencari string di semua file yang sebelumnya diindeks

sekilas -i -2 "eksprisi pencarian"

sekilas juga salah mengeja (seperti agrep) dan -2 menunjukkan dua kesalahan diperbolehkan. sekilas tersedia di

    Temukan file dengan namanya. Seperti pencarian paling sederhana dilakukan dengan menggunakan utilitas find. Perintah di bawah ini akan mencari file di direktori saat ini dan semua subdirektorinya.

    temukan -iname "nama file"

    • Masukkan -iname alih-alih -name untuk mengabaikan huruf besar/kecil dalam nama file yang dimasukkan. Perintah -name peka terhadap huruf besar-kecil.
  1. Mulai mencari di direktori root. Untuk menjalankan penelusuran di seluruh sistem, tambahkan / pengubah ke kueri Anda. Dalam hal ini, perintah find akan mencari file di semua direktori, mulai dari root.

    temukan / -iname "nama file"

    • Anda dapat mulai mencari di direktori tertentu; untuk melakukan ini, ganti / dengan path ke direktori, misalnya, / home / max.
    • Dapat digunakan. alih-alih / untuk mencari file hanya di direktori saat ini dan subdirektorinya.
  2. Gunakan simbol generalisasi.* untuk menemukan file yang namanya cocok dengan bagian permintaan. Anda dapat menggunakan karakter wildcard * untuk menemukan file yang nama lengkapnya tidak diketahui, atau untuk menemukan semua file dengan ekstensi tertentu.

    temukan / home / max -iname "* .conf"

    • Perintah ini akan menemukan semua file .conf di folder pengguna Max (dan subfoldernya).
    • Gunakan perintah ini untuk menemukan semua file yang cocok dengan bagian kueri. Misalnya, jika Anda memiliki banyak file terkait WikiHow di komputer Anda, temukan semua file dengan mengetikkan "* wiki *".
  3. Permudah pengelolaan hasil penelusuran. Jika ada terlalu banyak hasil pencarian, sulit untuk menemukan di antara mereka file yang diinginkan... Gunakan simbol | untuk menyaring hasil pencarian dengan lebih sedikit. Ini akan mempermudah untuk melihat dan memfilter hasil pencarian Anda.

    temukan / home / max -iname "* .conf" | lebih sedikit

    Temukan item tertentu. Gunakan pengubah untuk hanya menampilkan item tertentu di hasil penelusuran. Anda dapat mencari file biasa (f), direktori (d), tautan simbolik (l), perangkat I/O karakter (c), dan perangkat blok (b).

    temukan / -ketik f -iname "nama file"

  4. Filter hasil pencarian Anda berdasarkan ukuran file. Jika Anda memiliki banyak file dengan nama yang mirip di komputer Anda, tetapi Anda tahu ukuran file yang Anda cari, filter hasil pencarian berdasarkan ukuran file.

    temukan / -size + 50M -iname "nama file"

    • Perintah ini akan menemukan semua file yang lebih besar dari 50 MB. Gunakan pengubah + atau - untuk menunjukkan peningkatan atau penurunan ukuran. Jika tidak ada modifier + atau -, perintah akan mencari file yang ukurannya sama persis dengan ukuran yang ditentukan.
    • Hasil pencarian dapat difilter berdasarkan byte (c), kilobyte (k), megabyte (M), gigabyte (G), atau blok 512-byte (b). Perhatikan bahwa pengubah yang ditampilkan peka huruf besar-kecil.
  5. Menggunakan operator logika(operator boolean) untuk menggabungkan filter pencarian. Anda dapat menggunakan operator -dan, -atau, -not untuk menggabungkan yang berbeda permintaan pencarian dalam satu permintaan.

    find / travelphotos -type f -size + 200k -not -iname "* 2015 *"

    • Perintah ini akan menemukan file di folder "Travelphotos" yang berukuran lebih dari 200 KB dan tidak memiliki nomor 2015 dalam namanya.

Ini adalah halaman selamat datang default yang digunakan untuk menguji operasi yang benar dari server Apache2 setelah instalasi pada sistem Ubuntu. Ini didasarkan pada halaman yang setara di Debian, dari mana kemasan Apache Ubuntu berasal. Jika Anda dapat membaca halaman ini, berarti server HTTP Apache yang diinstal di situs ini berfungsi dengan baik. Anda harus ganti file ini(terletak di /var/www/html/index.html) sebelum melanjutkan mengoperasikan server HTTP Anda.

Jika Anda adalah pengguna biasa dari situs web ini dan tidak "tahu tentang apa halaman ini, ini mungkin berarti bahwa situs tersebut saat ini tidak tersedia karena pemeliharaan. Jika masalah berlanjut, harap hubungi administrator situs.

Ikhtisar Konfigurasi

Konfigurasi default Apache2 Ubuntu berbeda dari konfigurasi default upstream, dan dibagi menjadi beberapa file yang dioptimalkan untuk interaksi dengan alat Ubuntu. Sistem konfigurasinya adalah didokumentasikan sepenuhnya di /usr/share/doc/Apache2/README.Debian.gz... Lihat ini untuk dokumentasi lengkap. Dokumentasi untuk server web itu sendiri dapat ditemukan dengan mengakses manual jika paket apache2-doc diinstal pada server ini.

Tata letak konfigurasi untuk instalasi server web Apache2 pada sistem Ubuntu adalah sebagai berikut:

/ etc / apache2 / | - apache2.conf | `- ports.conf | - mods-enabled | | - * .load | `- * .conf | - conf diaktifkan | `- * .conf | - diaktifkan oleh situs | `- * .conf

  • apache2.conf adalah file konfigurasi utama. Ini menyatukan potongan-potongan dengan memasukkan semua file konfigurasi yang tersisa saat memulai server web.
  • ports.conf selalu disertakan dari file konfigurasi utama. Ini digunakan untuk menentukan port mendengarkan untuk koneksi masuk, dan file ini dapat dikustomisasi kapan saja.
  • File konfigurasi di direktori mods-enabled /, conf-enabled / dan sites-enabled / berisi cuplikan konfigurasi tertentu yang masing-masing mengelola modul, fragmen konfigurasi global, atau konfigurasi host virtual.
  • Mereka diaktifkan dengan menghubungkan file konfigurasi yang tersedia dari * -available / rekanan masing-masing. Ini harus dikelola dengan menggunakan pembantu kami a2enmod, a2dismod, a2ensite, a2dissite, dan a2enconf, a2disconf. Lihat halaman manual masing-masing untuk informasi rinci.
  • Biner disebut apache2. Karena penggunaan variabel lingkungan, dalam konfigurasi default, apache2 perlu dimulai/dihentikan dengan /etc/init.d/apache2 atau apache2ctl. Memanggil / usr / bin / Apache2 secara langsung tidak akan berfungsi dengan konfigurasi default.

Akar Dokumen

Secara default, Ubuntu tidak mengizinkan akses melalui browser web untuk setiap file selain yang terletak di / var / www, direktori public_html (bila diaktifkan) dan / usr / share (untuk aplikasi web). Jika situs Anda menggunakan root dokumen web yang terletak di tempat lain (seperti di / srv), Anda mungkin perlu memasukkan daftar putih direktori root dokumen Anda di /etc/apache2/apache2.conf.

Akar dokumen Ubuntu default adalah / var / www / html. Anda dapat membuat host virtual Anda sendiri di bawah / var / www. Ini berbeda dengan rilis sebelumnya yang memberikan keamanan yang lebih baik di luar kotak.

Melaporkan Masalah

Silakan gunakan alat ubuntu-bug untuk melaporkan bug dalam paket Apache2 dengan Ubuntu. Namun, periksa sebelum melaporkan bug baru.

Harap laporkan bug khusus untuk modul (seperti PHP dan lainnya) ke paket masing-masing, bukan ke server web itu sendiri.

Tidak diragukan lagi, ketika bekerja dengan Linux, terkadang perlu untuk pencarian file dengan karakteristik tertentu. Karakteristik ini dapat berupa ukuran atau jenis file, izin, dan lainnya.


perintah Linux Temukan, sangat membantu untuk mengatasinya pencarian file menurut berbagai kriteria.


Hari ini kita akan menganalisis temukan file di Linux dan berikan opsi perintah utama Temukan yang dapat Anda terapkan dalam pekerjaan Anda.

Format perintah Temukan:

Temukancara-pilihan

di mana cara adalah direktori di mana untuk mencari. Nilai berikut dapat ditentukan sebagai jalur:

. - cari di direktori saat ini;

/ - cari dari direktori root;

~ - cari di direktori home.

Adapun opsi, ada daftar yang jauh lebih besar, yang sangat penting untuk dibaca dengan cermat (ini akan banyak membantu di masa depan!). Jadi, opsi perintah find dasar:

-nama- mencari file berdasarkan nama menggunakan template yang diberikan;

-pengguna- mencari file milik pengguna yang ditentukan;

-kelompok- mencari file milik grup yang ditentukan;

-perm- mencari file dengan mode akses yang ditentukan;

-Tipe- mencari file dari jenis tertentu. Ada cukup jenis juga:

  • b - file blok khusus;
  • d - direktori;
  • c - file karakter khusus;
  • f - berkas biasa;
  • l - tautan simbolis;
  • p - pipa bernama;
  • s - soket.
-ukuran n- mencari file dengan ukuran n unit;

-mtime -n + n- mencari file, yang isinya telah berubah kurang dari (-) atau lebih dari (+) hari yang lalu.

Pertimbangkan beberapa contoh penggunaan perintah Temukan :

Opsi yang paling umum digunakan adalah -nama yang mencari file berdasarkan nama.

Contoh dengan opsi -nama :

$ temukan / mnt / usb -nama "* .mp3" -print

akan mencari semua file (ditunjukkan dengan tanda *) dengan ekstensi .mp3 pada perangkat USB yang terpasang di direktori / mnt / usb.

$ temukan ~ -nama "test *" -print

akan menampilkan daftar file direktori home yang dimulai dengan test.

Jika Anda perlu menemukan file yang dimulai dengan huruf tertentu (misalnya, dari a hingga j), maka akan lebih mudah untuk menggunakan ekspresi reguler di sini, yang sangat nyaman digunakan:

$ temukan / -nama "*" -cetak

Perintah di atas akan menemukan semua file pada sistem yang dimulai dengan huruf dari a sampai j.

Cari file dengan mode akses tertentu

Jika Anda perlu menemukan file yang memiliki mode akses tertentu, opsi ini akan membantu Anda -perm, yang akan dengan mudah membantu dengan ini.

Misalnya, mari kita cari file dengan mode akses 775 (pemilik dan grup memiliki hak penuh dan pengguna lain memiliki batasan penulisan) yang terletak di direktori saat ini:

$ Temukan. -perm 775 -cetak

Mencari dengan Temukan dengan opsi -perm, Anda dapat menggunakan cara lain - Anda dapat meletakkan tanda hubung di depan nilai mode dan kemudian pencarian akan dilakukan untuk file yang semua bit izin yang ditentukan ditetapkan. Selain itu, sisa bit diabaikan dalam kasus ini.

Misalnya, mari cari file yang akses penuhnya dapat diakses oleh pengguna grup:

$ Temukan. -perm -070 -cetak

Alih-alih tanda hubung, Anda dapat menentukan tanda plus. Dalam hal ini, pencarian akan dilakukan untuk file yang memiliki setidaknya satu dari bit izin yang ditentukan. Sisa bit diabaikan.

Cari file dari pengguna atau grup tertentu

Menemukan file untuk pengguna tertentu sangat mudah diterapkan. Untuk melakukan ini, jalankan saja perintah:

$ temukan / -admin pengguna -cetak

Perintah di atas akan menghasilkan pencarian file pada sistem yang dimiliki oleh admin pengguna.

Untuk menemukan file milik grup tertentu (misalnya manajer), jalankan perintah:

$ temukan / -manajer grup -print

Untuk mencari file dari pengguna atau grup yang tidak ada, Anda dapat menggunakan opsi - pengguna dan -nogroup:

$ temukan / -nouser -print

$ temukan / -nogroup -print

Cari file dari jenis tertentu

Salah satu fitur berguna dari tim Temukan, adalah kemampuan untuk mencari file dari jenis tertentu. Pertimbangkan kasus penggunaan untuk opsi -Tipe:

Mencari tautan simbolik di direktori / etc:

$ temukan / etc -type l -print

Menampilkan daftar direktori yang ada di direktori / mnt / raid

$ temukan / mnt / razia -type d -print

Cari file dengan ukuran tertentu

Pilihan -ukuran memungkinkan Anda untuk mencari file dengan ukuran tertentu dan terlihat seperti ini saat dijalankan:

$ Temukan. -ukuran 2000k -cetak

Perintah di atas akan menemukan dan menampilkan di layar file 2 megabyte yang terletak di direktori saat ini. Jika, misalnya, Anda perlu menemukan file berukuran kurang dari 500 kilobyte, maka perintahnya adalah sebagai berikut:

$ Temukan. -ukuran -500k -cetak

Jika Anda perlu menemukan file yang lebih besar dari 600 megabyte, gunakan perintah:

$ temukan / -ukuran + 600M -cetak

Menemukan file menggunakan opsi -mtime

Pilihan -mtime akan memungkinkan Anda untuk menemukan file yang telah berubah selama periode waktu tertentu.

Misalnya, kita dihadapkan pada tugas mencari file yang terletak di direktori /mnt/raid/upload dan diubah selama 5 hari terakhir. Perintah akan membantu kami dengan ini:

$ temukan / mnt / razia / unggah -mtime -5 -print

Jika kita membutuhkan yang sebaliknya, misalnya untuk mencari file yang tidak berubah selama seminggu, gunakan perintah:

$ temukan / mnt / razia / unggah -7 -cetak

Memerintah Temukan sangat alat yang nyaman untuk pencarian file dan juga dapat digunakan untuk pencarian file pada disk NFS (sistem file jaringan), tetapi dalam hal ini perlu diperhitungkan bahwa akan membutuhkan lebih banyak waktu untuk mencari sesuatu di NFS daripada di disk lokal.

Dalam artikel ini, kami hanya membahas opsi dasar dari perintah find yang akan membantu Anda dalam pekerjaan Anda. Gunakan apa yang nyaman dan jangan khawatir tentang hal-hal sepele!

Kebutuhan untuk mencari file dapat muncul di hampir setiap sistem operasi yang memungkinkan Anda untuk bekerja dengan berkas sistem... Contoh klasik bagi kami adalah sistem operasi Linux, yang akan kita gunakan dalam mode konsol. Mari kita lihat kemungkinan mencari file di sistem menggunakan konsol. Untuk menemukan file di sistem Linux, ada perintah find, yang memungkinkan pencarian yang cukup fleksibel, memungkinkan Anda untuk menentukan kriteria pencarian tambahan. Mari kita pertimbangkan kemampuan perintah ini secara lebih rinci.

Sintaks perintah find adalah:

Temukan jalur - opsi

Direktori tempat Anda ingin mencari ditentukan sebagai jalur. Misalnya, ini dapat berupa nilai dari bentuk berikut:
... - direktori saat ini
/ - direktori root
~ - direktori home

Setelah menentukan jalur, ini adalah cara opsi pencarian ditunjukkan. Kelihatannya membingungkan, tetapi pada kenyataannya tidak ada kesulitan.

Opsi dasar:
-nama- cari berdasarkan nama, templat pencarian diatur;
-pengguna- mencari file milik pengguna tertentu;
-kelompok- mencari file milik grup tertentu;
-perm- mencari file dengan mode akses;
-Tipe- mencari file berdasarkan jenis, daftar jenis:

  • B- file blok khusus;
  • D- direktori;
  • C- file karakter khusus;
  • F- berkas biasa;
  • aku- tautan simbolis;
  • P- pipa bernama;
  • S- stopkontak.

-ukuran n- mencari file dengan ukuran n unit;
-mtime -n + n- mencari file berdasarkan tanggal modifikasi, kurang dari (-) atau lebih (+) hari yang lalu.

Mari kita coba mencari file dengan mensimulasikan situasi yang berbeda.
Mari temukan file pada perangkat yang dapat dilepas yang terhubung ke USB dan telah terpasang sebelumnya pada sistem.

Cari file menurut ekstensi:

$ temukan / mnt / usb -nama "* .mp3" -print

Sebagai hasil dari menjalankan perintah ini, direktori akan dicari / mnt / usb Adalah direktori tempat perangkat dipasang. Pencarian akan dilakukan di semua file (*) dengan ekstensi .mp3.
Topeng pencarian dapat diubah dengan cukup fleksibel, misalnya, Anda dapat mengatur kata kunci yang memulai nama file dan mencarinya.

Cari file dengan memulai kata kunci:

$ find ~ -nama "config *" –print

Ini akan menampilkan daftar file yang ditemukan dimulai dengan kata kunci konfigurasi.
Satu dari kekuatan perintah adalah kemampuan untuk mencari sesuai dengan ekspresi reguler. Untuk demonstrasi, mari kita cari file yang dimulai dengan huruf Latin dari "a" hingga "j".

Cari file menggunakan pola ekspresi reguler:

$ temukan / -nama "*" –cetak

Menurut template yang ditentukan, semua file dalam sistem yang dimulai dengan huruf dari "a" hingga "j" akan dicari.

Siapa pun yang kurang lebih akrab dengan sistem Linux tahu bahwa mode akses file sangat penting. Terkadang Anda perlu menemukan file yang memiliki izin khusus, untuk tujuan ini Anda dapat menggunakan pencarian dengan opsi –Perm.

Cari file dengan mode akses 755:

$ temukan. -perm 775 –cetak

Pencarian yang lebih fleksibel dapat dilakukan dengan cara yang sama. Mari kita cari file berdasarkan grup pengguna yang memiliki akses penuh.

Cari file dengan hak untuk grup:

$ temukan. -perm -070 –cetak

Tanda hubung dapat diganti dengan tanda tambah, ini akan memungkinkan Anda untuk mencari file yang memiliki setidaknya satu dari bit izin yang ditentukan, sisa bit akan diabaikan.

Dalam contoh berikut, pertimbangkan untuk menemukan file yang dimiliki oleh pengguna atau grup tertentu.

Cari file dari pengguna tertentu:

$ temukan / -admin pengguna –cetak

Pencarian akan menemukan file milik pengguna admin.

Cari file milik grup pengguna tertentu:

$ temukan / -grup bot –cetak

File milik grup pengguna akan ditemukan bot... Selain itu, Anda dapat mencari file yang dimiliki oleh pengguna atau grup yang tidak ada:

$ find / -nouser –print $ find / -nogroup –print

Kemampuan untuk mencari jenis file tertentu juga merupakan fitur penting. Misalnya, jika ada kebutuhan untuk menemukan semua tautan simbolik di direktori tertentu.

Menemukan tautan simbolis:

$ find / etc -type l –print

Pencarian akan dilakukan di direktori / etc, di mana semua tautan simbolik akan dicari.

Terkadang perlu untuk melihat daftar subdirektori dalam direktori, untuk tugas seperti itu ada perintah berikut.

Jelajahi subdirektori dalam direktori:

$ temukan / mnt / usb -type d –print

Layar akan menampilkan daftar direktori yang ada di direktori / mnt / usb... Sekarang mari kita beralih ke opsi berikutnya, ini adalah kemampuan untuk mencari file dengan ukuran tertentu.

Cari file berdasarkan ukuran:

$ temukan. -ukuran 2000k -cetak

Pencarian akan dilakukan untuk file dengan ukuran 2000 kilobyte, ukurannya dapat ditentukan dalam megabyte, untuk ini, alih-alih huruf "k", Anda harus menentukan huruf "M".

Sebagai contoh berikutnya, kita akan menggunakan kemampuan untuk mencari file berdasarkan waktu modifikasinya. Untuk tujuan ini, kami akan menggunakan opsi –Waktu.

Cari file yang dimodifikasi dalam 2 hari terakhir:

$ temukan / var / www / html -mtime +2 –print

Pencarian akan dilakukan di direktori / var / www / html, dan file yang telah diubah dalam 2 hari terakhir akan dicari. Mungkin salah satu opsi pencarian yang paling penting dan nyaman. Anda juga dapat mencari berdasarkan tanggal modifikasi dengan kondisi sebaliknya. Mari kita coba mencari file di direktori yang tidak berubah dalam 5 hari.

Cari file yang tidak berubah selama 5 hari:

$ find / var / www / html -5 –print

Itu saja untuk saat ini, saya harap contoh-contoh ini membantu Anda mengetahui perintah ini. Kenyamanannya disajikan dengan jelas, dan tidak akan berlebihan untuk mengetahui kemampuannya, terutama jika Anda akan bekerja dengannya. sistem Linux... Keterampilan pencarian yang kompeten untuk file secara signifikan menghemat waktu pribadi Anda, dan seperti yang Anda tahu, waktu sangat berharga. Semoga berhasil dalam pekerjaan Anda!