【问题标题】:Can I pipe files from find to less?我可以将文件从 find 传输到 less 吗?
【发布时间】:2013-05-13 11:01:16
【问题描述】:

我有一堆文件,需要检查所有非空文件。我可以找到这些文件,例如通过运行

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

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

如果我手动将此文件列表作为参数提供给 lessless file1.e file2.e file3.e 等),我会得到我想要的,但这有点麻烦。有什么方法可以将 find 的输出直接传送到 less

【问题讨论】:

    标签: shell pipe


    【解决方案1】:

    在每个文件上依次运行less

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

    或:

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

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

    注意添加-type f,这样您就不会从find 返回目录。

    【讨论】:

    • 请注意,后者可能会多次调用less,因此不能保证显示整个列表
    • 谢谢!正是我需要的。
    • 我喜欢以前的版本,因为它允许我只用q 跳转到下一个文件,而不是:n(在我的键盘上是三个按键)。 后续问题:在我检查过之后,有没有办法杀死其余的少进程,例如200 个文件中的 10 个,还是我只需要按住 q 直到它们全部退出。用 Ctrl-Z 隐藏它们似乎有点乱......
    • 你应该只是能够控制-C出来,不是吗?
    • 确实可以。我以为我已经尝试过了,但我想我没有:P 再次感谢 Paul!
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 2015-01-25
    • 2021-10-28
    • 1970-01-01
    • 2023-03-26
    • 2021-06-20
    • 2021-03-04
    • 2015-06-20
    相关资源
    最近更新 更多