自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Linux 上用 fd 代替 find

系統(tǒng) Linux
許多 Linux 程序員在其工作中每天都在使用 find 命令。但是 find 給出的文件系統(tǒng)條目是有限的,如果你要進(jìn)行大量的 find 操作,它甚至不是很快速。因此,我更喜歡使用 Rust 編寫的 fd 命令,因?yàn)樗峁┝撕侠淼哪J(rèn)值,適用于大多數(shù)使用情況。

[[407174]]

fd 命令是一個流行的、用戶友好的 find 命令的替代品。

許多 Linux 程序員在其工作中每天都在使用 find 命令。但是 find 給出的文件系統(tǒng)條目是有限的,如果你要進(jìn)行大量的 find 操作,它甚至不是很快速。因此,我更喜歡使用 Rust 編寫的 fd 命令,因?yàn)樗峁┝撕侠淼哪J(rèn)值,適用于大多數(shù)使用情況。

正如它的 README 所說,“fd 是一個在文件系統(tǒng)中尋找條目的程序。它是一個簡單、快速和用戶友好的 find 的替代品。”它的特點(diǎn)是目錄的并行遍歷,可以一次搜索多個目錄。它支持正則表達(dá)式(regex)和基于通配符的模式。

安裝 fd

在 Linux 上,你可以從你的軟件庫中安裝 fd(可用的軟件包列表可以在 Repology 上的 fd 頁面 找到)。 例如,在 Fedora 上:

  1. $ sudo dnf install fd-find

在 macOS 上,可以使用 MacPorts 或 Homebrew。

另外,你也可以使用 Rust 的 Cargo 軟件包管理器:

  1. $ cargo install fd-find

使用 fd

要做一個簡單的搜索,運(yùn)行 fd 并在后面跟上要搜索的名字,例如:

  1. $ fd sh
  2. registry/src/github.com-1ecc6299db9ec823/cc-1.0.67/src/bin/gcc-shim.rs
  3. registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.bash
  4. registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.fish
  5. registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/completions/completions.zsh
  6. registry/src/github.com-1ecc6299db9ec823/exa-0.10.1/xtests/run.sh
  7. registry/src/github.com-1ecc6299db9ec823/git2-0.13.18/src/stash.rs
  8. registry/src/github.com-1ecc6299db9ec823/libc-0.2.94/src/unix/solarish
  9. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/cmake/SelectHashes.cmake
  10. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/stash.h
  11. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/include/git2/sys/hashsig.h
  12. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/backport.sh
  13. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/leaks.sh
  14. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/script/valgrind.sh
  15. registry/src/github.com-1ecc6299db9ec823/libgit2-sys-0.12.19+1.1.0/libgit2/src/config_snapshot.c
  16. [...]

如果你想搜索一個特定的目錄,可以將目錄路徑作為 fd 的第二個參數(shù),例如:

  1. $ fd passwd /etc
  2. /etc/pam.d/passwd
  3. /etc/passwd
  4. /etc/passwd-
  5. /etc/security/opasswd

要搜索一個特定的文件擴(kuò)展名,使用 -e 作為選項(xiàng)。例如:

  1. $ fd . '/home/ssur/exa' -e md
  2. /home/ssur/exa/README.md
  3. /home/ssur/exa/devtools/README.md
  4. /home/ssur/exa/man/exa.1.md
  5. /home/ssur/exa/man/exa_colors.5.md
  6. /home/ssur/exa/xtests/README.md
  7. $

你也可以通過提供 -x 或 -X 來執(zhí)行一個命令。

  • -x/--exec:選項(xiàng)為每個搜索結(jié)果(并行)運(yùn)行一個外部命令。
  • -X/--exec-batch:選項(xiàng)將所有搜索結(jié)果作為參數(shù)啟動一次外部命令。

例如,要遞歸地找到所有的 ZIP 檔案并解壓:

  1. $ fd -e zip -x unzip

或者,要列出某個特定目錄下在過去 n 天內(nèi)改變的所有文件,使用--changed-within 選項(xiàng):

  1. $ fd . '/home/ssur/Work/' --changed-within 10d
  2. /home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcDriverAdd.java
  3. /home/ssur/Work/wildfly/connector/src/main/java/org/jboss/as/connector/subsystems/data_sources/JdbcExample.java
  4. [...]

而要搜索所有在特定天數(shù)之前被修改的文件,請使用 --changed-before n 選項(xiàng):

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

這里,. 作為一個(正則)通配符,指示 fd 返回所有文件。

要了解更多關(guān)于 fd 的功能,請查閱 GitHub 上的 文檔

總結(jié)

我特別喜歡 fd 的一點(diǎn)是,搜索模式默認(rèn)是不區(qū)分大小寫的,這使得它更容易找到東西,即使你對你要找的東西沒有精確的認(rèn)識。更好的是,如果模式包含一個大寫的字符,它就會自動切換到大小寫敏感。

另一個好處是,它使用顏色編碼來突出不同的文件類型。

如果你已經(jīng)在使用這個神奇的 Rust 工具,請?jiān)谠u論中告訴我們你的想法。 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-06-29 06:39:21

Linuxdust命令du命令

2018-05-16 10:32:06

Linux命令find

2022-05-25 08:41:48

Linuxfd 命令文件

2020-04-21 14:21:31

LinuxPython

2018-12-11 11:00:50

Linux字體命令

2021-10-02 10:10:47

LinuxBusyBox命令

2021-10-12 08:43:19

LinuxSambaWindows

2019-01-07 09:50:06

Linuxtarball命令

2019-11-26 16:58:51

Linuxpkgsrc

2019-11-26 09:20:47

LinuxJava

2023-01-17 07:40:59

LinuxAppImage應(yīng)用程序

2014-12-15 09:59:28

LinuxApache

2021-08-18 11:19:25

FedoraLinuxJava

2021-09-11 15:41:55

UbuntuDropbox云服務(wù)

2017-03-29 16:18:11

LinuxUbuntuRedmine

2020-04-30 13:50:11

Linux網(wǎng)卡信息

2021-07-12 14:47:16

UbuntuZlib代碼

2022-09-13 08:40:24

AndroidLinux

2017-09-18 10:05:15

WindowsLinux容器

2020-08-24 12:37:54

Linuxxargs命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號