如何在目录中递归查找文件

Vij*_*ari 21 emacs

通常,我知道文件名但不记得或者发现指定确切的目录很麻烦.我希望能够找到文件x/y/*/some_file.txt,其中*允许在递归目录中搜索,而不仅仅是当前目录.

小智 24

如上所述这里:

M-x find-name-dired
Run Code Online (Sandbox Code Playgroud)

提供目录和模式后,匹配的文件将显示在Dired缓冲区中.您可以导航文件列表(C-n,C-p等)并根据需要打开文件(Ret).


Ehv*_*nce 7

我一直在寻找这个功能,现在我对我发现的东西感到满意:我正在使用它helm-projectile.

Projectile是一个项目交互库.项目是包含.projectile文件的VCS目录或目录.它基于GNU find(但也提供纯emacs lisp实现)

https://github.com/bbatsov/projectile

(你可以安装它packages.el).您可以单独使用它:call projectile-find-file(或projectile-mode和Cc pf).ido默认情况下它用于完成,但在这种情况下我更喜欢它的界面helm-projectile.

我的同事一直告诉我使用Sublime Text因为这个功能.幸运的是,我发现了弹丸:)


abo*_*abo 5

ido-find-file这样做:当您输入的文件名与当前目录中的任何内容都不匹配时,它会使用类似的内容locate来匹配您对系统上所有文件所写的内容.

设置只有一行:

(ido-mode)
Run Code Online (Sandbox Code Playgroud)

在此之后,C-x C-f将打电话ido-find-file.另外,我通常会添加:

(setq ido-enable-flex-matching t)
Run Code Online (Sandbox Code Playgroud)

因为我喜欢它,但有了它你会得到locate更多结果,即foo也会匹配froo.

  • 这不是递归找到的。它仅在当前目录中进行模糊搜索!Flplr更好 (2认同)

Dre*_*rew 0

Icicles命令icicle-locate(或者,如果您的操作系统icicle-locate-file没有程序)就是为此而设计的。定位给定目录(包括根目录)下任意位置的文件。locate~HOME

您可以匹配绝对文件名的任何部分(即路径和文件名)。您可以使用多种匹配,包括正则表达式、子字符串和模糊匹配。