我有一个包含 50 万个文本文件的目录,我想用 vim 打开一个或多个以检查文本模式。如何快速获取相同的十个文件名以作为示例打开?所有文件名都是未知的。
我试过了ls directory,却发现列出所有文件太慢了。请不要向我提供需要检查时间戳或其他随机或其他东西的答案。这里的重点是时间。尽可能快地。
我从@the_velour_fog 了解到,有一个使用 vim 的直接解决方案(:args `find . -type f \| head -n10`,如果有人不需要使用 nerdtree 等插件运行 vim,则此方法非常有用推荐)但请给我一个 Ubuntu 答案。
如果您主要关注时间并且您想列出任何 10 个文件,您应该查看-U选项,这意味着列出条目而不进行排序。
所以你可以这样做:
ls -U
Run Code Online (Sandbox Code Playgroud)
仅对于 10 个文件,假设文件名没有换行符或任何异常字符:
ls -U | head -10
Run Code Online (Sandbox Code Playgroud)
更好的做法是仅通过 shell 本身来执行此操作:
printf '%s\n' *
Run Code Online (Sandbox Code Playgroud)
对于 10 个文件:
printf '%s\n' * | head -10
Run Code Online (Sandbox Code Playgroud)
这是我的系统上 2000 个文件的计时统计信息zsh:
( ls --color=auto foobar* | head -10; ) 0.044 total
( ls --color=auto -U foobar* | head -10; ) 0.020 total
( printf '%s\n' foobar* | head -10; ) 0.013 total
Run Code Online (Sandbox Code Playgroud)
另请注意,ARG_MAX如果目录中有许多文件,其中一些可能会触发,在这种情况下,使用需要使用其他方式,例如findshell 循环。
| 归档时间: |
|
| 查看次数: |
603 次 |
| 最近记录: |