GNU/Linux >> Belajar Linux >  >> Linux

Ganti find dengan fd di Linux

Banyak programmer Linux menggunakan find perintah setiap hari dalam karir mereka. Tapi find memberikan satu set entri sistem file yang terbatas, dan jika Anda harus melakukan serangkaian besar find operasi, itu bahkan tidak terlalu cepat. Jadi sebagai gantinya, saya lebih suka menggunakan fd Rust perintah karena menyediakan default yang masuk akal yang berfungsi untuk sebagian besar kasus penggunaan.

Seperti yang dikatakan README, "fd adalah program untuk menemukan entri di sistem file Anda. Ini adalah alternatif yang sederhana, cepat, dan mudah digunakan untuk find ." Ini memiliki fitur traversal direktori paralel, sehingga dapat mencari beberapa direktori sekaligus. Mendukung ekspresi reguler (regex) dan pola berbasis glob.

Instal fd

Di Linux, Anda dapat menginstal fd dari repositori perangkat lunak Anda (daftar paket yang tersedia dapat ditemukan di halaman fd di Repology.) Misalnya, di Fedora:

$ sudo dnf install fd-find 

Di macOS, gunakan MacPorts atau Homebrew.

Sebagai alternatif, Anda dapat menggunakan pengelola paket Kargo Rust:

$ cargo install fd-find 

Gunakan fd

Untuk melakukan pencarian sederhana, jalankan fd setelah argumen apa pun, seperti:

$ fd sh
registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.bash
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
registry/src/github.com-1ecc6299db9ec823/exa -0.10.1/completions/completions.zsh
registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
registry/src/github.com-1ecc6299db9ec823/git2 -0.13.18/src/stash.rs
registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
registry/src/github.com-1ecc6299db9ec823/libgit2 -sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/ stash.h
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
registry/src/github. com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
registry/src/githu b.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0 /libgit2/script/valgrind.sh
registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
[...]

Jika Anda ingin mencari direktori tertentu, berikan jalur direktori sebagai argumen kedua ke fd , seperti:

$ fd passwd /etc
/etc/pam.d/passwd
/etc/passwd
/etc/passwd-
/etc/security/opasswd

Untuk mencari ekstensi file tertentu, gunakan -e sebagai pilihan. Misalnya:

$ fd . '/home/ssur/exa' -e md
/home/ssur/exa/README.md
/home/ssur/exa/devtools/README.md
/home/ssur/ exa/man/exa.1.md
/home/ssur/exa/man/exa_colors.5.md
/home/ssur/exa/xtests/README.md
$

Anda juga dapat menjalankan perintah dengan memberikan -x atau -X .

  • -x/--exec option menjalankan perintah eksternal untuk setiap hasil pencarian (secara paralel).
  • -X/--exec-batch option meluncurkan perintah eksternal sekali dengan semua hasil pencarian sebagai argumen.

Misalnya, untuk menemukan semua arsip ZIP secara rekursif dan membongkarnya:

$ fd -e zip -x unzip 

Atau, untuk membuat daftar semua file di bawah direktori tertentu yang diubah dalam n . terakhir jumlah hari, gunakan --changed-within pilihan:

$ fd . '/home/ssur/Work/' --changed-in 10d
/home/ssur/Work/wildfly/connector/src/main/Java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd. java
/home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
[...]

Dan untuk mencari semua file yang diubah sebelum jumlah hari tertentu, gunakan --changed-before n pilihan:

$ fd . '/home/ssur/Work/' --changed-before 365d 

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Di sini, . bertindak sebagai entri wildcard untuk menginstruksikan fd untuk mengembalikan semua file.

Untuk mempelajari lebih lanjut fungsi fd , lihat dokumentasinya di GitHub.

Kesimpulan

Satu hal yang sangat saya sukai dari fd adalah bahwa pola pencarian peka huruf besar/kecil secara default, yang membuatnya lebih mudah untuk menemukan sesuatu bahkan ketika Anda memiliki pengetahuan yang tidak tepat tentang apa yang Anda cari. Lebih baik lagi, secara otomatis beralih ke case-sensitive jika polanya berisi karakter huruf besar.

Manfaat lainnya adalah ia menggunakan kode warna untuk menyorot berbagai jenis file.

Jika Anda sudah menggunakan alat Rust yang luar biasa ini, beri tahu kami pendapat Anda di komentar.


Linux
  1. Ganti halaman manual dengan Tealdeer di Linux

  2. Temukan File dengan Perintah Temukan dan Temukan di Linux

  3. Bagaimana menemukan semua file yang diakhiri dengan .rb dengan Linux?

  1. Ganti kutipan pintar dengan perintah sed Linux

  2. Temukan file dan direktori di Linux dengan perintah find

  3. Bagaimana cara menghapus file dengan nama ini di linux:-]???????q

  1. N Cara Mudah Mengganti File Duplikat Dengan Hardlink?

  2. Cara Menemukan File dengan Perintah fd di Linux

  3. Linux menghapus file dengan ukuran 0