在Linux中通过命令行查看扩展文件属性


3

在Windows中,可以打开资源管理器并添加列以查看有关文件的其他信息。例如,在下图中,我添加了“公司”,“版权”和“说明”列:

在此处输入图片说明

我需要知道在运行Linux(Ubuntu 12.04 LTS)的系统上是否可以通过命令行获取此信息。我可以使用字符串和grep作为公司名称,然后看到它,但前提是我已经知道公司名称。我不能只是grep的“公司”,而让它在同一行或下一行返回公司名称。


尝试运行nm file。至于许可证/版权和说明-您可以从软件包管理器中了解(我不知道如何在ubuntu中进行操作)。
Eddy_Em 2013年

尝试了这一点,并返回nm: <filename>: no symbols了多个文件,这些文件可以在具有我如上所述要查找的属性的窗口中看到。
jdevaney 2013年

澄清:您想在UbuntuWindows中观看二进制文件和库文件的属性?
Eddy_Em

我需要能够在Linux上看到它们(在这种情况下,我的服务器正在运行Ubuntu)。我可以在Windows系统上看到这些属性,这就是我试图在Linux上找到它们的方式。我知道它们在Windows中是什么,我只是想找到一种在Linux中查看相同信息的方法。
jdevaney 2013年

运行strings file。(但我认为,您是在耍傻瓜)
Eddy_Em 2013年

Answers:


8

您无法使用获得所有信息ls

您需要几个命令:

  • 名称ls

  • 业主ls -ld <filename> | cut -f3 -d' '

    例如: root

  • 修改日期ls -ld <filename> | awk '{print $6" "$7}'

    例如: 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

  • 标签:不适用

  • 公司名称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的非常快速和肮脏的shell函数,它提供了上面的许多信息:

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

一些例子:

$ 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) 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.