Android

Bagaimana untuk mencari fail di linux menggunakan baris arahan

Perintah Linux Dasar File & Folder

Perintah Linux Dasar File & Folder

Isi kandungan:

Anonim

Perintah find adalah salah satu alat yang paling berkuasa dalam sistem pentadbir sistem Linux. Ia mencari fail dan direktori dalam hirarki direktori berdasarkan ungkapan pengguna dan boleh melakukan tindakan khusus pengguna pada setiap fail yang dipadankan.

Anda boleh menggunakan perintah find untuk mencari fail dan direktori berdasarkan kebenaran, jenis, tarikh, pemilikan, saiz, dan banyak lagi. Ia juga boleh digunakan dalam kombinasi dengan alat lain seperti grep atau sed .

Linux find Syntax Perintah

Sintaks umum untuk arahan find adalah seperti berikut:

find

  • Atribut options mengawal rawatan pautan simbolik, pilihan debugging, dan kaedah pengoptimalan. path… atribut menentukan direktori awal atau direktori di mana mencari akan mencari fail. Atribut expression terdiri daripada pilihan, corak carian, dan tindakan yang dipisahkan oleh pengendali.

Untuk mencari fail dalam direktori, pengguna yang membuat arahan find perlu membaca kebenaran pada direktori itu.

Mari lihat contoh berikut:

find -L /var/www -name "*.js"

  • Pilihan -L (pilihan) memberitahu arahan find untuk mengikuti pautan simbol. The /var/www (path…) menentukan direktori yang akan dicari. Nama (ekspresi) -name "*.js memberitahu find untuk mencari fail yang berakhir dengan .js (fail JavaScript).

Cari Fail mengikut Nama

Menemui fail mengikut nama mungkin adalah penggunaan yang paling biasa bagi arahan find . Untuk mencari fail menggunakan nama namanya, pilihan nama-nama mengikuti nama fail yang anda cari.

Sebagai contoh, untuk mencari fail bernama document.pdf di direktori /home/linuxize anda akan menggunakan arahan berikut:

find /home/linuxize -type f -name document.pdf

Untuk menjalankan carian tanpa -iname , tukar pilihan nama- -iname dengan -iname :

find /home/linuxize -type f -iname document.pdf

Arahan di atas akan sepadan dengan "Document.pdf", "DOCUMENT.pdf"..etc.

Cari Fail mengikut Sambungan

Mencari fail mengikut lanjutan adalah sama seperti mencari fail mengikut nama. Sebagai contoh, untuk mencari semua fail yang berakhir dengan .log.gz di dalam direktori /var/log/nginx anda boleh gunakan:

find /var/log/nginx -type f -name '*.log.gz'

Adalah penting untuk menyebut bahawa apabila anda menggunakan aksara kad liar, anda mestilah memetik corak atau melarikan diri simbol asterisk dengan backslash \ sehingga ia tidak dapat ditafsirkan oleh shell.

Untuk mencari semua fail yang tidak sepadan dengan regex *.log.gz anda boleh menggunakan pilihan -not . Sebagai contoh, untuk mencari semua fail yang tidak berakhir dalam *.log.gz anda akan gunakan:

find /var/log/nginx -type f -not -name '*.log.gz'

Cari Fail mengikut Jenis

Kadangkala anda mungkin perlu mencari jenis fail tertentu seperti fail biasa, direktori atau symlinks. Di Linux, semuanya adalah fail.

Untuk mencari fail berdasarkan jenisnya, gunakan pilihan -type - -type dan satu deskriptor berikut untuk menentukan jenis fail:

  • f : fail biasa d : direktori l : simbol simbol c : peranti aksara b : peranti blok p : bernama paip (FIFO) s : soket

Sebagai contoh, untuk mencari semua direktori dalam direktori kerja semasa, anda akan menggunakan:

find. -type d

Contoh biasa ialah mengubah rekod fail laman web secara rekursif ke 644 dan keizinan direktori ke 755 menggunakan perintah chmod :

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Cari Fail mengikut Saiz

Untuk mencari fail berdasarkan saiz fail, lulus parameter ukuran beserta kriteria saiz. Anda boleh menggunakan akhiran berikut untuk menentukan saiz fail:

  • b : blok 512-bait (lalai) c : bait w : kata dua bait k : Kilobytes M : Megabytes G : Gigabytes

Perintah berikut akan menemui semua fail dengan betul 1024 bait di dalam direktori /tmp :

find /tmp -type f -size 1024c

Perintah find juga membolehkan anda mencari fail yang lebih besar atau kurang daripada saiz tertentu.

Dalam contoh berikut, kami sedang mencari semua fail kurang dari 1MB di dalam direktori kerja semasa. Perhatikan simbol tolak sebelum nilai saiz:

find. -type f -size -1M

find. -type f -size +1M

Anda juga boleh mencari fail dalam julat saiz. Perintah berikut akan mendapati semua fail antara 1 dan 2MB :

find. -type f -size +1M -size 21M

Cari Fail mengikut Tarikh Pengubahsuaian

Perintah find juga boleh mencari fail berdasarkan pengubahsuaian terakhir, akses, atau perubahan masa.

Sama seperti ketika mencari mengikut saiz, gunakan simbol tambah dan tolak bagi "lebih besar daripada" atau "kurang daripada".

Katakan beberapa hari yang lalu, anda mengubah suai salah satu fail konfigurasi dovecot, tetapi anda terlupa yang mana. Anda boleh menapis semua fail di bawah direktori /etc/dovecot/conf.d yang berakhir dengan .conf dan telah diubahsuai dalam lima hari terakhir dengan:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Berikut adalah satu lagi contoh penapisan fail berdasarkan tarikh pengubahsuaian menggunakan pilihan-akhir -daystart . Perintah di bawah akan menyenaraikan semua fail dalam direktori /home yang telah diubah 30 atau lebih hari yang lalu:

find /home -mtime +30 -daystart

Cari Fail mengikut Kebenaran

Pilihan -perm membolehkan anda mencari fail berdasarkan keizinan fail.

Sebagai contoh, untuk mencari semua fail dengan kebenaran 775 di dalam direktori /var/www/html , anda akan menggunakan:

find /var/www/html -perm 644

Anda boleh awalan mod angka dengan tolak - atau slash / .

Apabila slash / digunakan sebagai awalan, maka sekurang-kurangnya satu kategori (pengguna, kumpulan atau yang lain) mesti mempunyai sekurang-kurangnya bit masing-masing untuk fail yang sepadan.

Pertimbangkan arahan contoh berikut:

find. -perm /444

Perintah di atas akan memadankan semua fail dengan kebenaran baca yang ditetapkan untuk sama ada pengguna, kumpulan atau yang lain.

Sekiranya tolak - digunakan sebagai awalan maka untuk fail yang sepadan sekurang-kurangnya bit tertentu mesti ditetapkan. Perintah berikut akan mencari fail yang telah membaca dan menulis kebenaran untuk pemilik dan kumpulan dan boleh dibaca oleh pengguna lain:

find. -perm -664

Cari Fail oleh Pemilik

Untuk mencari fail yang dimiliki oleh pengguna atau kumpulan tertentu, gunakan pilihan -user dan- -group .

Sebagai contoh, untuk mencari semua fail dan direktori yang dimiliki oleh linuxize pengguna, anda akan menjalankan:

find / -user linuxize

Berikut adalah contoh dunia sebenar. Katakan anda ingin mencari semua fail yang dimiliki oleh www-data dan menukar pemilikan fail yang dipadankan dari www-data ke nginx :

find / -user www-data -type f -exec chown nginx {} ;

Cari dan Padamkan Fail

Untuk memadam semua fail yang sepadan, tambah pilihan -delete pada akhir ungkapan padanan.

Pastikan anda menggunakan pilihan ini hanya apabila anda yakin hasilnya sepadan dengan fail yang anda ingin padamkan. Adalah idea yang baik untuk mencetak fail yang dipadankan sebelum menggunakan pilihan -delete .

Sebagai contoh untuk memadam semua fail yang berakhir dengan .temp dari /var/log/ anda akan menggunakan:

find /var/log/ -name `*.temp` -delete Gunakan pilihan -delete dengan berhati-hati. Barisan arahan cari dinilai sebagai ungkapan dan jika anda menambah pilihan -delete terlebih dahulu, perintah itu akan memadamkan semuanya di bawah titik permulaan yang anda tentukan.

Ketika datang ke direktori, find hanya dapat menghapus direktori kosong sama seperti rmdir .

Kesimpulannya

Kami telah menunjukkan kepada anda cara menggunakan arahan find dengan pelbagai pilihan dan kriteria.

Artikel ini harus memberi anda pemahaman asas tentang cara mencari fail pada sistem Linux anda. Anda juga boleh melawat halaman lelaki yang find dan membaca tentang semua pilihan berkuasa lain dari arahan find .

mencari terminal