"less" не распаковывает автоматически сжатые файлы
На Fedora/Redhat/CentOS less
Кажется, что команда волшебным образом обнаруживает сжатый файл и распаковывает его на лету, так что вы можете сделать:
less my_stuff.csv.gz
Я только что заметил, что это не работает в Ubuntu 11
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Я проверял свои виртуальные машины CentOS, чтобы увидеть, есть ли какая-то магия псевдонимов оболочки, которая заставляет его работать, но, похоже, его нет. Поддержка gzip только что встроена в бинарный файл CentOS?
Если кто-нибудь знает, как это работает в CentOS и / или как это можно сделать для работы в Ubuntu, я был бы благодарен.
Я знаю, что могу сделать
zcat my_stuff.csv.gz | less
но это заставило бы мою клавиатуру быстрее изнашиваться.
2 ответа
less
не делайте этого по умолчанию, но в строке по умолчанию есть строка ~/.bashrc
это меняет поведение по умолчанию:
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
Обязательно не удаляйте и не комментируйте эту строку.
Имея это в виду, вы можете распаковывать файлы в архиве и без архивирования, не зная, как в
less /var/log/dpkg.log*
где некоторые из журналов могут быть заархивированы, а некоторые другие не заархивированы.
Для учетной записи root, доступной через sudo
вы не можете сделать то же самое, но есть два обходных пути:
sudo zless file*
sudo -E less file*
В первом случае я использовал zless
, который работает также для неархивированного файла.
Во втором я добавил -E
возможность sudo
чтобы сохранить переменные среды, сделать меньше работы, как вы ожидаете.
Меньше не можете читать сжатые файлы, вы можете проверить это на его странице руководства. Существует скрипт, установленный по умолчанию в Ubuntu и большинстве дистрибутивов, называемый zless, который работает, как вы описали.
Таким образом, ответ заключается в использовании:
zless my_stuff.csv.gz
Разница между Fedora и Ubuntu заключается в том, что Fedora устанавливает переменную среды LESSOPEN, чтобы аргумент передавался через lesspipe:
echo $LESSOPEN
||/usr/bin/lesspipe.sh %s
Обратите внимание, что эта команда не будет работать в Ubuntu.