Extracting a specific file from an archive using 7-Zip

8,574

Solution 1

The man 7z page says:

  -i[r[-|0]]{@listfile|!wildcard}
         Include filenames

You need to explicitly specify ! before the file name and protect the switch from bash expansion with single quotes: 7z x '-i!Windows/System32/BootRec.exe' winRE.wim

xubuntu@xubuntu:~$ 7z x '-i!Windows/System32/BootRec.exe' winRE.wim

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)

Processing archive: winRE.wim

Extracting  Windows/System32/BootRec.exe

Everything is Ok

Size:       299008
Compressed: 227817568

(You can avoid keeping the full path by using the e function letter: 7z e '-i!Windows/System32/BootRec.exe' winRE.wim.)

BTW, if you do not protect the -i option with single quotes or protect it with double quotes, you get an error:

xubuntu@xubuntu:~$ 7z x "-i!Windows/System32/BootRec.exe" winRE.wim 
bash: !Windows/System32/BootRec.exe: event not found

Solution 2

7z e [archive name] -o[direction] [filename] -r

for example:

7z e 'Movies.rar' -o/root/Downloads/ 'Rush.mp4' -r

This command worked for me, I tried it on ubuntu server 16.04.

Share:
8,574

Related videos on Youtube

John Smith
Author by

John Smith

Updated on September 18, 2022

Comments

  • John Smith
    John Smith almost 2 years

    I run Linux Live CD and I need to extract a specific file from a wim-archive that is located on a disk drive. I know a full path to the file in the archive:

    xubuntu@xubuntu:~$ 7z l winRE.wim | grep -i bootrec.exe
    2009-08-28 15:02:29 ....A       299008       134388  Windows/System32/BootRec.exe
    

    I am short on disk space and do not have a possibility to unpack the whole archive.

    How could I extract that specific file from the archive?

    I tried the -i option, but that did not work:

    xubuntu@xubuntu:~$ 7z x -i Windows/System32/BootRec.exe winRE.wim 
    
    
    Error:
    Incorrect command line
    
  • Animesh Sahu
    Animesh Sahu almost 3 years
    You really don't need a wildcard for single file, yet it is useful for extracting all files with pattern.