在 Fedora/Redhat/CentOS 上,该less
命令似乎神奇地检测到一个 gzipped 文件并即时解压缩它,因此您可以执行以下操作:
less my_stuff.csv.gz
Run Code Online (Sandbox Code Playgroud)
我刚刚注意到这在 Ubuntu 11 上不起作用
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Run Code Online (Sandbox Code Playgroud)
我一直在检查我的 CentOS 虚拟机,看看是否有一些 shell 别名魔法可以使它工作,但似乎没有。CentOS 二进制文件中是否内置了 gzip 支持?
如果有人知道这如何在 CentOS 上工作和/或如何使其在 Ubuntu 上工作,我将不胜感激。
我知道我可以做到
zcat my_stuff.csv.gz | less
Run Code Online (Sandbox Code Playgroud)
但这会使我的键盘磨损得更快。
enz*_*tib 48
less
默认情况下不要这样做,但是默认中有一行~/.bashrc
更改了默认行为:
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
Run Code Online (Sandbox Code Playgroud)
确保不要删除或注释此行。
有了这个,您可以在不知道的情况下分页压缩和非压缩文件,例如
less /var/log/dpkg.log*
Run Code Online (Sandbox Code Playgroud)
其中一些日志可以压缩,而另一些则不压缩。
对于通过sudo
您访问的 root 帐户,您不能做同样的事情,但有两种解决方法:
sudo zless file*
sudo -E less file*
在我使用的第一种情况下zless
,这也适用于非压缩文件。
在第二个中,我添加了保留环境变量的-E
选项sudo
,以减少您期望的工作。
Jav*_*era 30
Less无法读取 gzipped 文件,您可以在其手册页中查看。有一个脚本,默认情况下安装在 Ubuntu 和大多数发行版中,称为zless,它按照您的描述工作。
所以答案是使用:
zless my_stuff.csv.gz
Run Code Online (Sandbox Code Playgroud)
Fedora 和 Ubuntu 的区别在于 Fedora 设置了环境变量LESSOPEN来强制通过 lesspipe 参数:
echo $LESSOPEN
||/usr/bin/lesspipe.sh %s
Run Code Online (Sandbox Code Playgroud)
请注意,此命令在 Ubuntu 中不起作用。
归档时间: |
|
查看次数: |
52170 次 |
最近记录: |