In Windows there is a version information page in an executable/library file properties window. How to view that info in Ubuntu?
-
2Do you mean how to view such information from Linux binaries/libraries or windows EXE/DLL using a Linux utility ? – João Pinto Jan 26 '11 at 23:30
-
1As I've clearly specified in the question title, I mean PE (Windows) EXE and DLL files (to view using a Linux utility of course). – Ivan Jan 27 '11 at 06:27
7 Answers
I'm working in a tool called pev to retrieve information about PE files on the command line.
It is installable with
sudo apt-get install pev
The file version can be fetched with
peres -v program.exe | awk '{print $3}'
-
3
-
-
1
-
1In Ubuntu the command should be
peres -v program.exe | awk '{print $3}'
aftersudo apt install pev
– Huan Mar 02 '20 at 15:20 -
pev -p
works fine in Ubuntu 16.04. Just used to check Windows version remotely:pev -p /mnt/windows_host/Windows/explorer.exe
– mivk Nov 01 '20 at 18:40
From the gnome-exe-thumbnailer
script, suggested by Scott Ritchie:
wrestool --extract --raw --type=version inputfile.exe
extracts the version information, printing some binary data mixed with UTF-16 text. The script converts it to readable text by piping it through:
tr '\0, ' '\t.\0' \
| sed 's/\t\t/_/g' \
| tr -c -d '[:print:]' \
| sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'
The overall command is then wrestool --extract --raw --type=version inputfile.exe | tr '\0, ' '\t.\0' | sed 's/\t\t/_/g' | tr -c -d '[:print:]' | sed -r -n 's/.*Version[^0-9]*([0-9]+\.[0-9]+(\.[0-9][0-9]?)?).*/\1/p'
.

- 5,395
-
1+1
wrestool
is provided by theicoutil
package which is available as a standard Debian package since way back. – tripleee May 09 '14 at 07:52 -
-
As an alternative to using tr and sed to parse the output from @mechanical-snail 's solution, here is a GNU strings and GNU grep version:
$ wrestool --extract --raw --type=version putty.exe | strings -el | grep Version -A 1
FileVersion
Release 0.65
ProductVersion
Release 0.65
UPDATE:
Another alternative is a recent version of exiftool by Phil Harvey (it is based on perl, easy to install with sudo apt-get install libimage-exiftool-perl
, also available for Mac and Windows). It has lots of formatting options.
# Example with exiftool 10.47
$ exiftool -FileVersion -ProductVersion putty.exe
File Version : Release 0.67
Product Version : Release 0.67

- 141
-
What package in Ubuntu/Debian has exiftool? Looks like
libimage-exiftool-perl
? – Xen2050 Oct 30 '18 at 14:06 -
I just download the source code and build it locally.
Download the tar.gz file from the website (The "Download Version xx.yy" link at the top of http://owl.phy.queensu.ca/~phil/exiftool/), extract the files and see the INSTALLATION section of the README file for how to build it using perl and then installing it to /usr/local/bin
– dcg Jan 26 '19 at 05:19 -
-
If you install the gnome-exe-thumbnailer
package, you can simply look at the version number in nautilus
, caja
,nemo
and thunar
.
The code to do this manually is available in /usr/bin/gnome-exe-thumbnailer.sh

- 99,918

- 4,311
-
@Scott.. Thanks. it works.. the relevant code is very simple to use in another script... I assume that what you mean by "you can simply look at the version number in nautilus", is that that the version number appears grafted into the .exe's icon in Nautilus.. an interesting idea.. Personally, I rarely use the icon-view, but the code snippet is great for me.. – Peter.O Aug 13 '11 at 12:09
For the sake of completeness, here's something you can do if you can't install new applications, but you do have p7zip and Vim:
- Extract the metadata with
7z x whatever.exe .rsrc/VERSION/1
- Open the resulting
.rsrc/VERSION/1
file in Vim - Type
:e ++enc=utf16le
at the Vim command line to request that the file's contents be reinterpreted as little-endian UTF-16.

- 2,238
The method mentioned in @ssokolow's answer does not work exactly for me.
However, the 7z
's (version 16.02 or above) "list" option will list that information already.
So, I defined the following Bash function:
function lspe
{
7z l "$1" | sed -n -e '/^Comment =/,/^$/ p' | sed 's/^Comment = //'
}
You can put this function in your .bash_aliases
file and use like this:
lspe executable.exe

- 10,515
I just found out myself how to create a nice python dict with the information (I was looking around myself and wound up here for some reason) and would like to present my method here:
Github Gists - spookyahell/exe2version_info.py
'''Licensed under the MIT License :)'''
import pefile
import pprint
pe = pefile.PE('example.exe')
string_version_info = {}
for fileinfo in pe.FileInfo[0]:
if fileinfo.Key.decode() == 'StringFileInfo':
for st in fileinfo.StringTable:
for entry in st.entries.items():
string_version_info[entry[0].decode()] = entry[1].decode()
pprint.pprint(string_version_info)
I am licensing it under the MIT License... may anybody who feels the need to create useful scripts or other things with it...
And see Github Gists - spookyahell/peinfo.py for an example implementation of this method in another script...

- 11
- 1
-
Welcome to Ask Ubuntu! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. – Kevin Bowen Jan 01 '19 at 06:21