Просмотр расширенных свойств файла через командную строку в Linux

19844
jdevaney

В Windows можно открыть проводник и добавить столбцы для просмотра дополнительной информации о файле. Например, на изображении ниже я добавил столбцы для Company, Copyright и Description:

Просмотр расширенных свойств файла через командную строку в Linux

Мне нужно знать, есть ли способ получить эту информацию через командную строку в системе под управлением Linux (Ubuntu 12.04 LTS). Я могу использовать строки и grep для названия компании и увидеть это, но предполагается, что я уже знаю название компании. Я не могу просто выполнить поиск слова "Компания", чтобы оно возвращало название компании в той же или следующей строке.

2
Попробуйте запустить `nm file`. Что касается лицензии / авторских прав и описания - вы можете узнать это у менеджера пакетов (я не знаю, как это сделать в Ubuntu). Eddy_Em 11 лет назад 0
Попробовал, вернул `nm: : нет символов` в нескольких файлах, которые я вижу в окнах, свойства которых я ищу, как описано выше. jdevaney 11 лет назад 0
Уточнение: вы хотите посмотреть свойства бинарных и библиотечных файлов * в Ubuntu * или * в Windows *? Eddy_Em 11 лет назад 0
Мне нужно, чтобы их можно было увидеть в Linux (в этом случае мой сервер работает под управлением Ubuntu). Я вижу свойства в системе Windows, вот как я пытаюсь найти их в Linux. Я знаю, что они есть в Windows, я просто пытаюсь найти способ увидеть ту же информацию в Linux. jdevaney 11 лет назад 0
запустить `файл строк`. (но я думаю, ты дурак) Eddy_Em 11 лет назад 0
используя строки, я вижу нужные данные. Проблема в том, что если бы я не знал, как называлось название компании, до запуска строк, я мог бы не знать эту информацию, просто глядя на вывод строк. В нескольких файлах, которые я просматривал, информация была там, а в некоторых - нет. К сожалению, я не думаю, что могу полагаться только на строки, чтобы всегда иметь информацию, в которой я нуждаюсь / хочу. jdevaney 11 лет назад 0

1 ответ на вопрос

7
jaume

Вы не можете получить всю информацию с ls.

Вам нужно несколько команд:

  • Имя :ls

  • Владелец :ls -ld <filename> | cut -f3 -d' '

    Например: root

  • Дата изменения :ls -ld <filename> | awk ''

    Например: 2012-03-02 06:56

    (Используйте stat <filename>для даты доступа и изменения.)

  • Тип :file <filename>

    Например: /lib/libiw.so.30: ELF 32-bit LSB shared object, Intel 80386 (...)

  • Размер :ls -hld <filename> | cut -f5 -d' '

    Например: 34K

  • Метки : N / A

  • Компания :apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | grep Origin

    Например: Origin: Ubuntu

    (В системах на основе .rpm эту информацию можно найти в rpm -q -i -f <filename>)

  • Авторское право :cat /usr/share/doc/$(dpkg -S <filename> | cut -f1 -d:)/copyright 2>/dev/null || echo 'No copyright information'

    Например: (...) Copyright: Commercial (...)

    (В системах на основе .rpm эту информацию можно найти в rpm -q -i -f <filename>)

  • Описание :apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | fgrep 'Description' | fgrep -v Description-md5

    Например: Description-en: Filesystem in Userspace (library)

    (В системах на основе .rpm эту информацию можно найти в rpm -q -i -f <filename>)

  • Длинное описание :apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | egrep -v '^[^ ]'

    Например: 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.

    (В системах на основе .rpm эту информацию можно найти в rpm -q -i -f <filename>)

Это очень быстрая и грязная функция оболочки для Ubuntu, которая предоставляет большую часть информации выше:

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 ''; 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; } 

Некоторые примеры:

$ 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)