是否可以用 less 打开子目录中的文件?

是否可以用 less 打开子目录中的文件?

我有时使用 less 来快速浏览一小部分文件,使用类似

less brscan/*/*

然后我用来:n循环浏览文件

如果我有一个文件夹,例如

brscan/
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   ├── postrm
│   └── prerm
├── etc
│   └── opt
├── opt
│   └── brother
└── usr
    ├── bin
    └── lib64

在此示例中将less拾取文件夹中的文件DEBIAN

DEBIAN
       ├── conffiles
       ├── control
       ├── postinst
       ├── postrm
       └── prerm

但它不会下降到其他子目录,它只是错误:

brscan/etc 是一个目录
brscan/opt 是一个目录
brscan/usr 是一个目录

是否可以减少对这些子目录中文件的分页?

我在想类似的事情

find brscan/ | xargs less

但它不起作用 - 仍在拾取目录

答案1

指定-not -type d从查找结果中省略目录

find -not -type d | xargs less

或更好:

find -not -type d -print0 | xargs -0 less

它可以更好地处理带空格的文件名。

答案2

bash环球星选项启用,您可以:

shopt -s globstar
less brscan/**/*

但它也包括目录。使用zsh,您可以仅过滤对常规文件的扩展:

less brscan/**/*(.)

如果返回的文件过多,上述所有操作都会失败。安全的方法是使用find

find brscan -type f -exec less {} +

相关内容