[復刻版]は検索ツールFDよりも10倍高速検索をお勧めします

10倍高速検索の検索ツールよりもオススメFD

 

HTTPS:// www.hi-linux.com/posts/15017.htmlは

それの次に良いの使用を試してみました。

 

2018年8月13日にマイク・投稿者

fdは、コマンド錆は、超高速ラインベースの検索ツールを開発したのLinux / Unixの代替案の下でfindコマンドであることを目指しをfdがあります。

fdが、それは今のコマンドを提供し、すべての偉大な機能を見つけ、それはまた、あなたの毎日のニーズを満たすために強力な十分なを提供していますすることはできませんが。単純な構文、色端子出力、超高速クエリ速度、インテリジェント場合、正規表現と並列実行の注文の特性のためのサポート:例えば。

プロジェクト住所:https://github.com/sharkdp/fd

インストールFD

fdが良いクロスプラットフォーム機能、Linuxでは、MacOSの、Windowsや他のプラットフォームの下でのインストールをサポートしています。ここでは、プラットフォームの下で、より一般的なインストール方法のいくつかをご紹介します:

  • Ubuntuの/ Debain
1 
2
?$ wgetのhttps://github.com/sharkdp/fd/releases/download/v7.0.0/fd_7.0.0_amd64.deb 
$ sudoをdpkgの-i fd_7.0.0_amd64.deb
  • Fedoraの
1
$がインストールDNF FD-検索
  • マックOS
1
$ FDインストールBREW
  • ウィンドウズ

スクープ  と  Chocolatey  パッケージ管理システムは、Windowsの下で、具体的な方法は、公式サイトを参照して使用することができます。

1 
2
3
4
5
インストールすることにより、#スクープ
FDインストールスクープ$を

#Chocolateyしてインストールを
FDインストール$チョコ

システムのインストールは、より参照することができる公式文書を

FDコマンドラインオプション

1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
USAGE:
FD [FLAGS / OPTIONS] [<パターン>] [<パス> ...]

FLAGS:
-H、隠されたファイルを検索し、ディレクトリ--hidden
-I、DOは尊重しない(gitの--no-無視| FDを。 )は、ファイルを無視
--no-を無視-VCSは尊重しない.gitignoreファイル
-s、大文字と小文字を区別する検索(デフォルト--caseセンシティブ:スマートケース)
-i、--ignore-ケース大文字と小文字を区別しない検索(デフォルト:スマートケース)
-F、--fixed-ストリングリテラル文字列のようなパターンを扱い
-a、--absoluteパスを表示絶対代わりに相対パス
-L、シンボリックリンク従っ--follow
-p、--fullパス検索フルパス(デフォルト:[ファイル] - / dirnameにのみ)
-0、--print0別々のヌル文字によって結果
-h、--helpプリントヘルプ情報
-V、--versionプリントバージョン情報の

オプション:
-d、--max-深<深さ>に設定された最大検索深さ(デフォルト:なし)
タイプによって-t、--type <ファイルタイプ> ...フィルタ:ファイル(F )、ディレクトリ(D)、シンボリックリンク(L)、
実行(X)
-e、--extension <EXT> ...ファイル拡張子によってフィルタ
-x、--exec <CMD>各検索結果のためのコマンドを実行
-E 、--exclude <パターン>は...与えられたグロブパターンと一致するエントリ除外する
--ignore-ファイル<パス> ... .gitignore形式でカスタム無視-ファイルを追加します
-c、--color <とき>ときに使用色:決して、*自動*、常に
-j、--threads <num>は検索&実行するために使用するスレッド数を設定

ARGS:
<パターン>検索パターンを、正規表現(オプション)
<パス> ...ファイルシステムの検索のためのルートディレクトリ(オプション)

FD例

簡易検索

ちょうどあなたがあなたが最も簡単な検索、あなたが何を検索したいというパラメータを行うことができます見つけたいfdのパラメータを持って来ます。例えば:あなたはペースキーワードが含まれているファイルまたはディレクトリを見つけたいです。

1 
2
3
4
5
6
7
8
9
10
$ FDペース
ソース/ libに/漢/ DIST /フォント/ハン・space.otf
ソース/ libに/漢/ DIST /フォント/ハン・space.woff
ソース/ libに/ペース
ソース/ libに/ペース/ペース-テーマbarber- shop.min.css
ソース/ libに/ペース/ペース-テーマ-ビッグcounter.min.css
ソース/ libに/ペース/ペース-テーマbounce.min.css
ソース/ libに/ペース/ペース-テーマの中心原子.min.css
ソース/ libに/ペース/ペース・テーマ・センター・circle.min.css
ソース/ libに/ペース/ペース・テーマ・センターradar.min.css

注:FDデフォルトでは大文字と小文字を区別せず、あいまいクエリをサポート。

指定されたタイプで検索

默认情况下,fd 会搜索所有符合条件的结果。如果你想指定搜索的类型可以使用 -t 参数,fd 目前支持四种类型:fdlx,分别表示:文件、目录、符号链接、可执行文件。下面我们来看几个实际的例子:

  • 只搜索包含 pace 关键字的文件
1
2
3
4
5
6
7
8
9
$ fd -tf pace
source/lib/Han/dist/font/han-space.otf
source/lib/Han/dist/font/han-space.woff
source/lib/pace/pace-theme-barber-shop.min.css
source/lib/pace/pace-theme-big-counter.min.css
source/lib/pace/pace-theme-bounce.min.css
source/lib/pace/pace-theme-center-atom.min.css
source/lib/pace/pace-theme-center-circle.min.css
source/lib/pace/pace-theme-center-radar.min.css
  • 只搜索包含 pace 关键字的目录
1
2
$ fd -td pace
source/lib/pace

搜索指定目录

fd 默认会在当前目录和其下所有子目录中搜索,如果你想搜索指定的目录就需要在第二个参数中指定。例如:要在指定的 /etc 目录中搜索包含 passwd 关键字的文件或目录。

1
2
3
4
5
$ fd passwd /etc
/etc/master.passwd
/etc/pam.d/chkpasswd
/etc/pam.d/passwd
/etc/passwd

通过正则表达式搜索

  • 搜索当前目录下以 head 开头并以 swig 结尾的文件。
1
2
3
4
$ fd '^head.*swig$'
layout/_custom/header.swig
layout/_partials/head.swig
layout/_partials/header.swig
  • 搜索当前目录下文件名包含字母且文件名后缀为 PNG 的文件。
1
2
3
4
5
6
$ fd '[a-z]\.png$'
source/images/apple-touch-icon-next.png
source/images/searchicon.png
source/lib/fancybox/source/fancybox_overlay.png
source/lib/fancybox/source/fancybox_sprite.png
source/lib/fancybox/source/helpers/fancybox_buttons.png

其它技巧

  • 搜索隐藏文件

fd 支持隐藏文件搜索,如果你需要搜索隐藏文件可以加上 -H 参数。例如:在当前目录下搜索关键字为 zshrc 的隐藏文件。

1
2
$ fd -H zshrc
.zshrc
  • 搜索指定扩展名的文件

在当前目录下搜索文件扩展名为 md 的文件。

1
2
3
4
5
6
$ fd -e md
README.cn.md
README.md
source/lib/fastclick/README.md
source/lib/jquery_lazyload/CONTRIBUTING.md
source/lib/jquery_lazyload/README.md

在当前目录下搜索文件名包含 reademe 且扩展名为 md 的文件。

1
2
3
4
5
$ fd -e md readme
README.cn.md
README.md
source/lib/fastclick/README.md
source/lib/jquery_lazyload/README.md
  • 排除特定的目录或文件

搜索当前目录下除 lib 目录外的所有包含关键字 readme 的文件或目录。

1
2
3
$ fd -E lib readme
README.cn.md
README.md

搜索指定目录下除文件名后缀为 js 的所有文件。

1
2
3
4
$ fd  -E '*.js' -tf  . source/lib/fastclick
source/lib/fastclick/LICENSE
source/lib/fastclick/README.md
source/lib/fastclick/bower.json
  • 结合外部命令对结果进行批量处理

实现的方式有两种:一是和 find 命令的类似的处理方法,通过 xargs 命令来关联相关命令处理。二是通过 fd 自己的 -x 参数来实现。

我们来看一个具体的例子,统计当前目录下所有文件名后缀为 js 的文件的行数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 通过 -x 参数实现
$ fd -e js -x wc -l

30 scripts/merge-configs.js
2225 scripts/merge.js
31 scripts/tags/button.js
12 scripts/tags/center-quote.js
59 scripts/tags/exturl.js
26 scripts/tags/full-image.js
833 scripts/tags/group-pictures.js

# 通过 xargs 参数实现
$ fd -0 -e js | xargs -0 wc -l
30 scripts/merge-configs.js
2225 scripts/merge.js
31 scripts/tags/button.js
12 scripts/tags/center-quote.js
59 scripts/tags/exturl.js
26 scripts/tags/full-image.js
833 scripts/tags/group-pictures.js

参考文档

http://www.google.com
http://t.cn/RD03Aom
http://t.cn/ROV0Xos

 

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/11871369.html