"less"는 gzip 파일을 자동으로 압축 해제하지 않습니다


55

Fedora / Redhat / CentOS에서이 less명령은 gzip으로 압축 된 파일을 마술처럼 감지하여 압축 해제하는 것처럼 보이므로 다음을 수행 할 수 있습니다.

less my_stuff.csv.gz

우분투 11에서 작동하지 않는 것을 알았습니다.

less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file.  See it anyway? 

CentOS VM을 검사하여 작동시키는 쉘 별명 마법이 있는지 확인했지만 작동하지 않는 것 같습니다. gzip 지원은 CentOS 바이너리에 내장되어 있습니까?

CentOS에서 어떻게 작동하는지 및 / 또는 Ubuntu에서 어떻게 작동하는지 알고 있다면 누구나 감사합니다.

내가 할 수 있다는 것을 알고있다

zcat my_stuff.csv.gz | less

하지만 키보드가 빨리 마모됩니다.


2
Ubuntu 16.04에서는 기본적으로 less myfile.txt.gz작동합니다.
Pablo A

답변:


42

less기본적으로 그렇게하지 말고 ~/.bashrc기본 동작을 변경 하는 행 이 기본값으로 있습니다.

[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

이 줄을 제거하거나 주석 처리하지 마십시오.
이 기능을 사용하면 압축 파일과 압축되지 않은 파일을

less /var/log/dpkg.log*

여기서 일부 로그는 압축되고 다른 로그는 압축되지 않을 수 있습니다.

액세스 한 루트 계정의 sudo경우 동일한 작업을 수행 할 수 없지만 다음 두 가지 해결 방법이 있습니다.

  1. sudo zless file*
  2. sudo -E less file*

내가 사용한 첫 번째 경우 zless압축되지 않은 파일에도 적용됩니다.
두 번째 -E옵션 에서는 sudo환경 변수를 보존하고 예상보다 적은 작업을 수행 하는 옵션을 추가했습니다 .


1
.bashrc에 첫 줄이 기본적으로 존재하지 않습니까? 나는 그것을 추가하는 것을 기억할 수 없으며 여기서 완벽하게 작동합니다 (10.4).
johanvdw

2
@johanvdw : 그렇습니다 : "기본에 줄이 있습니다 ~/.bashrc". OP는 자체적으로 수정했을 수 있습니다 ~/.bashrc.
enzotib

그냥 난에 다음 사항을 추가 거라고 생각 RHEL OS의이 작품 어디 언급, 당신은 ENV에 다음이 표시됩니다 LESSOPEN=|/usr/bin/lesspipe.sh %s이것은 포함하는 스크립트에 의해 수행 [ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"에 추가/etc/profile.d/less.sh
KHobbits

25

당신이 그 사람 페이지에서 확인할 수 있습니다, gzip으로 압축 된 파일을 읽을 수 없습니다. 우분투에는 기본적으로 설치되는 스크립트가 있으며 zless 라는 대부분의 배포판 은 설명대로 작동합니다.

답은 다음을 사용하는 것입니다.

zless my_stuff.csv.gz

Fedora와 Ubuntu의 차이점은 Fedora가 환경 변수 LESSOPEN 을 설정하여 lesspipe 를 통해 인수를 강제 실행한다는 것입니다.

echo $LESSOPEN
||/usr/bin/lesspipe.sh %s

이 명령은 우분투에서 작동하지 않습니다.


우분투 zless에서는 쉘 스크립트를 사용 less하고 lesspipe그 코어를 사용하므로에 less대한 심볼릭 링크가 될 수 없습니다 zless. 나는 그것이 다른 배포판에서 다르다고 생각하지 않습니다.
enzotib

오 ... 당신은 나를 Fedora 설치로 부팅하게했습니다;). 편집했습니다.
Javier Rivera
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.