Visualização de propriedades de arquivos estendidos via linha de comando no Linux

1

No Windows, é possível abrir o explorer e adicionar colunas para visualizar informações adicionais sobre um arquivo. Por exemplo, na imagem abaixo, adicionei as colunas de empresa, direitos autorais e descrição:

Euprecisosaberseexisteumamaneiradeobteressainformaçãovialinhadecomandoemumsistemarodandolinux(Ubuntu12.04LTS).Eupossousarstringsegrepparaonomedaempresaeverisso,mas,presumoquejáseionomedaempresa.Eunãopossosimplesmentepegar"Company" e fazer com que ele retorne o nome da empresa na mesma linha ou na próxima linha.

    
por jdevaney 19.02.2013 / 15:23

1 resposta

6

Você não pode obter todas as informações com ls .

Você precisa de vários comandos:

  • Nome : ls

  • Proprietário : ls -ld <filename> | cut -f3 -d' '

    Por exemplo: root

  • Data de modificação : ls -ld <filename> | awk '{print $6" "$7}'

    Por exemplo: 2012-03-02 06:56

    (Use stat <filename> para a data acessada e alterada.)

  • Tipo : file <filename>

    Por exemplo: /lib/libiw.so.30: ELF 32-bit LSB shared object, Intel 80386 (...)

  • Tamanho : ls -hld <filename> | cut -f5 -d' '

    Por exemplo: 34K

  • Tags : N / A

  • Empresa : apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | grep Origin

    Por exemplo: Origin: Ubuntu

    (Em sistemas baseados em .rpm, esta informação pode ser encontrada em rpm -q -i -f <filename> )

  • Copyright : cat /usr/share/doc/$(dpkg -S <filename> | cut -f1 -d:)/copyright 2>/dev/null || echo 'No copyright information'

    Por exemplo: (...) Copyright: Commercial (...)

    (Em sistemas baseados em .rpm, esta informação pode ser encontrada em rpm -q -i -f <filename> )

  • Descrição : apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | fgrep 'Description' | fgrep -v Description-md5

    Por exemplo: Description-en: Filesystem in Userspace (library)

    (Em sistemas baseados em .rpm, esta informação pode ser encontrada em rpm -q -i -f <filename> )

  • Descrição longa : apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | egrep -v '^[^ ]'

    Por exemplo: GNU findutils provides utilities to find files meeting specified criteria and perform various actions on the files which are found. This package contains 'find' and 'xargs'; however, 'locate' has been split off into a separate package.

    (Em sistemas baseados em .rpm, esta informação pode ser encontrada em rpm -q -i -f <filename> )

Esta é uma função shell muito rápida e suja para o Ubuntu que fornece muitas das informações acima:

function lsw { filename=$1; ( echo "XXNameXXOwnerXXDate ModifiedXXTypeXXSizeXXCompanyXXDescription"; ( echo  XX$filename; echo -n XX; ls -dl $filename | cut -f3 -d' '; echo -n XX; ls -dl $filename | awk '{print $6" "$7}'; echo -n XX; file $filename | cut -f2 -d: | cut -f1 -d,; echo -n XX; ls -hld $filename| cut -f5 -d' '; echo -n XX; apt-cache show $(dpkg -S $filename 2>/dev/null| cut -f1 -d:) 2>/dev/null| egrep 'Origin:|Section:' | tail -n 1 | cut -f2 -d:; echo -n XX; apt-cache show $(dpkg -S $filename 2>/dev/null| cut -f1 -d:) 2>/dev/null| fgrep 'Description' | fgrep -v Description-md5 | cut -f2 -d:) | tr '\n' ' '; echo ) | column -t -s XX; }

Alguns exemplos:

$ lsw /home/jaume
Name          Owner   Date Modified      Type         Size   Company  Description
/home/jaume   jaume   2013-02-19 22:01    directory   4.0K 

$ lsw /opt/ibm/notes/notes
Name                   Owner  Date Modified      Type                         Size  Company  Description
/opt/ibm/notes/notes   root   2012-12-08 08:47    ELF 32-bit LSB executable   47K    IBM      IBM Notes 

$ lsw /lib/libfuse.so.2
Name                Owner  Date Modified      Type                                   Size  Company   Description
/lib/libfuse.so.2   root   2012-03-02 16:33    symbolic link to 'libfuse.so.2.8.6'   16     Ubuntu    Filesystem in Userspace (library) 
    
por 19.02.2013 / 23:06