W Fedorze / Redhat / CentOS less
polecenie wydaje się w magiczny sposób wykrywać skompresowany plik i rozpakowywać go w locie, dzięki czemu możesz:
less my_stuff.csv.gz
Właśnie zauważyłem, że to nie działa na Ubuntu 11
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Sprawdzałem moje maszyny wirtualne CentOS, aby sprawdzić, czy jest jakiś magiczny alias powłoki, który sprawia, że działa, ale wydaje się, że nie. Czy obsługa gzip jest właśnie wbudowana w plik binarny CentOS?
Jeśli ktoś wie, jak to działa na CentOS i / lub jak można go uruchomić na Ubuntu, byłbym wdzięczny.
Wiem, że mogę to zrobić
zcat my_stuff.csv.gz | less
ale to spowodowałoby szybsze zużycie mojej klawiatury.
less myfile.txt.gz
działa natychmiast po wyjęciu z pudełka.Odpowiedzi:
less
nie rób tego domyślnie, ale domyślnie jest linia,~/.bashrc
która zmienia domyślne zachowanie:Pamiętaj, aby nie usuwać ani komentować tego wiersza.
Dzięki temu możesz spakować i spakować pliki bez wiedzy, na przykład w
gdzie niektóre dzienniki można spakować, a inne nie spakować.
W przypadku konta root, do
sudo
którego można uzyskać dostęp , nie można zrobić tego samego, ale istnieją dwa obejścia:sudo zless file*
sudo -E less file*
W pierwszym przypadku, którego użyłem
zless
, działa to również w przypadku pliku nieskompresowanego.W drugim dodałem
-E
opcjęsudo
zachowania zmiennych środowiskowych, aby mniej pracować, jak można się spodziewać.źródło
~/.bashrc
”. OP mógł zmodyfikować swój własny~/.bashrc
.LESSOPEN=|/usr/bin/lesspipe.sh %s
Odbywa się to przez skrypt zawierający[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"
dodany do/etc/profile.d/less.sh
Mniej nie może odczytać spakowanych plików, możesz to sprawdzić na stronie man. Istnieje skrypt instalowany domyślnie w Ubuntu i większości dystrybucji, zwany zless , który działa zgodnie z opisem.
Więc odpowiedzią jest użycie:
Różnica między Fedorą a Ubuntu polega na tym, że Fedora ustawiła zmienną środowiskową LESSOPEN w celu wymuszenia argumentu przez lesspipe:
Zauważ, że to polecenie nie działa w Ubuntu.
źródło
zless
jest skrypt powłoki, który używaless
i jestlesspipe
w jego rdzeniu, więcless
nie może być dowiązaniem symbolicznymzless
. Nie sądzę, żeby było inaczej w innych dystrybucjach.