在 FreeBSD 上使用“less”显示 tar 文件内容

在 FreeBSD 上使用“less”显示 tar 文件内容

在 Linux 和 FreeBSD 之间不断切换时,我总是遇到这个问题。当我这样做时:

 less something.tgz

Linux 系统(嗯……确切地说是 Ubuntu)向我显示文件列表,这通常是我想要的,而 FreeBSD 显示二进制内容。这种行为(显示文件内容)在 Linux 上是如何实现的?是否可以在 FreeBSD 系统上复制它?

答案1

查看Ubuntu 机器上的lesspipe(或) 的手册页。lessopen

对于 Debian/Ubuntu 版本,您只需添加

eval "$(lesspipe)"

到你的.bashrc

在 FreeBSD 上,你可以lesspipe.sh在名为 lesspipe 的单独端口中找到该脚本,它使用来自源码(尽管没有上面的便捷设置——less 的手册页有更多信息)。

这是我在以下位置找到的另一个版本的脚本鲜肉lesspipe,一个用于浏览器 less 的插件

答案2

我要扮演一个脾气暴躁的老头,大喊“嘿,你们这些孩子,从我的草坪上走开!”但是......

你做得不对。

Less 和 more 是两个常见的分页程序,它们应该在管道命令字符串的末尾运行。这些程序不是为了读取任何随机类型的文件而设计的,例如 cpio 存档、tar 存档或 uuencoded gzipped tarred des 加密的 bzip2ed 文件。

学习 unix 的做事方式,你也会开始理解一大堆其他事情是怎么回事。这样你就会了解 stdin、stdout 和 stderr 之类的东西。

gzip -d < 文件 | tar -tvf - | less

你稍后就会感谢我。

答案3

您可能会看到一些有用的内容zless somefile.tgz,但我认为您真正想要做的是:

tar ztvf somefile.tgz |less

适用于所有系统。请注意,t 只是告诉您有什么,而 x 则提取文件。

答案4

我从未见过它在.tgz文件上起作用,只在.gz文本文件上起作用,但也许它确实起作用。无论如何,许多 Linux 发行版less都会检测文件是否经过 gzip 压缩,并在显示时解压缩流。我不能代表 FreeBSD 发言,但至少在 OpenBSD 上,zless如果查看经过 gzip 压缩的文本文件,则需要使用它。我想它也包含在 FreeBSD 中,或者至少可以从 ports 树中获得。

相关内容