Anzeigen erweiterter Dateieigenschaften über die Befehlszeile in Linux

19923
jdevaney

In Windows können Sie den Explorer öffnen und Spalten hinzufügen, um zusätzliche Informationen zu einer Datei anzuzeigen. In der Abbildung unten habe ich beispielsweise die Spalten für Firma, Copyright und Beschreibung hinzugefügt:

enter image description here

Ich muss wissen, ob es eine Möglichkeit gibt, diese Informationen über die Befehlszeile auf einem Linux-System (Ubuntu 12.04 LTS) zu erhalten. Ich kann Strings und grep für den Firmennamen verwenden und das sehen, aber es setzt voraus, dass ich den Firmennamen bereits kenne. Ich kann nicht einfach nach "Company" suchen und den Firmennamen in derselben oder in der nächsten Zeile zurückgeben lassen.

2
Versuchen Sie, 'nm file' auszuführen. Was Lizenz / Copyright und Beschreibung betrifft, können Sie es von Ihrem Paketmanager erfahren (ich weiß nicht, wie es in Ubuntu zu tun ist). Eddy_Em vor 11 Jahren 0
Habe das probiert, `nm zurückgegeben: : Keine Symbole in mehreren Dateien, die ich in Fenstern sehen kann, deren Eigenschaften ich wie oben beschrieben suche. jdevaney vor 11 Jahren 0
Klarstellen: Sie möchten Eigenschaften von Binär- und Bibliotheksdateien * in Ubuntu * oder * in Windows * sehen? Eddy_Em vor 11 Jahren 0
Ich muss sie unter Linux sehen können (in diesem Fall läuft auf meinem Server Ubuntu). Ich kann die Eigenschaften eines Windows-Systems sehen, so versuche ich sie unter Linux zu finden. Ich weiß, was sie unter Windows sind, ich versuche nur einen Weg zu finden, um die gleichen Informationen in Linux zu sehen. jdevaney vor 11 Jahren 0
Führen Sie `strings file` aus. (aber ich denke, du spielst den Dummkopf) Eddy_Em vor 11 Jahren 0
Mit Strings kann ich die gewünschten Daten sehen. Das Problem dabei ist, dass ich, wenn ich nicht wüsste, wie der Firmenname vor dem Ausführen von Strings war, diese Informationen möglicherweise nicht einfach nur bei der Ausgabe von Strings sehen würde. In mehreren Dateien habe ich mir die Informationen angesehen, die dort zu sein schienen, und in einigen nicht. Leider glaube ich nicht, dass ich mich auf Strings verlassen kann, um immer die Informationen zu haben, die ich brauche / möchte. jdevaney vor 11 Jahren 0

1 Antwort auf die Frage

7
jaume

Sie können nicht alle Informationen mit erhalten ls.

Sie benötigen mehrere Befehle:

  • Name :ls

  • Besitzer :ls -ld <filename> | cut -f3 -d' '

    Zum Beispiel: root

  • Änderungsdatum :ls -ld <filename> | awk ''

    Zum Beispiel: 2012-03-02 06:56

    (Verwenden Sie das stat <filename>Datum, auf das zugegriffen und geändert wurde.)

  • Typ :file <filename>

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

  • Größe :ls -hld <filename> | cut -f5 -d' '

    Zum Beispiel: 34K

  • Tags : N / A

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

    Zum Beispiel: Origin: Ubuntu

    (Auf .rpm-basierten Systemen finden Sie diese Informationen unter rpm -q -i -f <filename>)

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

    Zum Beispiel: (...) Copyright: Commercial (...)

    (Auf .rpm-basierten Systemen finden Sie diese Informationen unter rpm -q -i -f <filename>)

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

    Zum Beispiel: Description-en: Filesystem in Userspace (library)

    (Auf .rpm-basierten Systemen finden Sie diese Informationen unter rpm -q -i -f <filename>)

  • Lange beschreibung :apt-cache show $(dpkg -S <filename> | cut -f1 -d:) | egrep -v '^[^ ]'

    Zum Beispiel: 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.

    (Auf .rpm-basierten Systemen finden Sie diese Informationen unter rpm -q -i -f <filename>)

Dies ist eine sehr schnelle und schmutzige Shell-Funktion für Ubuntu, die viele der oben genannten Informationen liefert:

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

Einige Beispiele:

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