我能直接从查找命令中将文件导入到翻页程序less吗?

4

我有一堆文件,需要检查其中所有非空的文件。我可以通过运行以下命令来找到这些文件:

find *e* -maxdepth 1 -size +0 -print

但是,如果我在上面的命令中添加| less,我只能看到文件列表,而不是文件本身。

如果我手动将这个文件列表作为参数传递给lessless file1.e file2.e file3.e等),我可以得到我想要的结果,但这种方法很繁琐。有没有办法可以直接将find的输出导入到less中呢?

1个回答

9

逐个运行 less 命令来处理每个文件:

find *e* -type f -maxdepth 1 -size +0 -exec less {} \;

或者:

find *e* -type f -maxdepth 1 -size +0 | xargs less

假设文件数量不是很大(xargs通常限制最大参数数为5000),要在整个列表上运行less

请注意添加-type f,以便您不会从find返回目录。


2
请注意,后者可能会多次调用less,因此不能保证呈现整个列表 - Jens
我喜欢旧版本,因为它允许我只需按下 q 就能跳转到下一个文件,而不是 :n(在我的键盘上需要三个按键)。后续问题:在我检查了200个文件中的10个之后,有没有一种方法可以杀死其余的 less 进程,或者我只需要一直按 q 直到它们全部退出。用 Ctrl-Z 隐藏它们似乎有点凌乱... - Nagel
1
你应该只需要按Control-C键退出,对吗? - Paul R
1
当然可以。我以为我已经尝试过了,但我猜我没有:P 再次感谢,保罗! - Nagel
1
然后使用:n:p命令来进入下一个或上一个文件。 - Nabil Kadimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接