В 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
но это заставило бы мою клавиатуру быстрее изнашиваться.
less myfile.txt.gz
работает "из коробки".Ответы:
less
не делайте этого по умолчанию, но в строке по умолчанию есть строка,~/.bashrc
которая меняет поведение по умолчанию:Обязательно не удаляйте и не комментируйте эту строку.
Имея это в виду, вы можете распаковывать файлы в архиве и без архивирования, не зная, как в
где некоторые из журналов могут быть заархивированы, а некоторые другие не заархивированы.
Для учетной записи root, к которой
sudo
вы получили доступ, вы не можете сделать то же самое, но есть два обходных пути:sudo zless file*
sudo -E less file*
В первом случае я использовал
zless
, что работает и для неархивированного файла.Во втором я добавил
-E
опцию, чтобыsudo
сохранить переменные среды, чтобы сделать меньше работы, как вы ожидаете.источник
~/.bashrc
". ОП мог бы изменить свой собственный~/.bashrc
.LESSOPEN=|/usr/bin/lesspipe.sh %s
Это делается с помощью скрипта, содержащего[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"
добавленный в/etc/profile.d/less.sh
Меньше не можете читать сжатые файлы, вы можете проверить это на его странице руководства. Существует скрипт, установленный по умолчанию в Ubuntu и большинстве дистрибутивов, называемый zless , который работает, как вы описали.
Таким образом, ответ заключается в использовании:
Разница между Fedora и Ubuntu заключается в том, что Fedora устанавливает переменную среды LESSOPEN, чтобы аргумент передавался через lesspipe:
Обратите внимание, что эта команда не будет работать в Ubuntu.
источник
zless
есть сценарий оболочки, который используетless
иlesspipe
по своей сути, поэтомуless
не может быть символической ссылкой наzless
. Я не думаю, что это отличается в других дистрибутивах.