Use archives within Linux CLI

From WikiMLT

Tar

  • Note .tgz === .tar.gz

Cre­ate a gzip-com­pressed archive

tar czvf archived-file.tar.gz /my/directory/or/file_1 /my/directory/or/file_2
  • -c, --create – cre­ate a new archive,
  • -z, --gzip – fil­ter the archive through gzip,
  • -v, --verbose – ver­bose­ly list files processed,
  • -f – use archive file or de­vice ARCHIVE – it must be the last op­tion, oth­er­wise you can use --file=ARCHIVE.

Ex­tract a gzip-com­pressed archive

tar xzvf my-file.tar.gz
  • -x, --extract, --get – ex­tract files from an archive,
  • The rest op­tions are the same as the above,
  • the com­pres­sion type (-z in this case) could be omit­ted, be­cause tar will de­tect it au­to­mat­i­cal­ly.

Ex­tract bzip2-com­pressed archives

tar -xjf nextcloud-[version].tar.bz2

Ex­tract cer­tain file from the archive di­rec­to­ry tree

tar --strip-components=6 -xvf "data.tar.zst" \
./usr/lib/x86_64-linux-gnu/nautilus/extensions-3.0/libnautilus-share.so

7zip

7zip is not in­stalled by de­fault with most Lin­ux dis­tri­b­u­tions, so on De­bian based dis­tri­b­u­tion you can in­stall it by the fol­low­ing com­mand.

sudo apt update && sudo apt install p7zip-full

IMO, 7zip is the best or at least the most eas­i­est way to cre­ate pass­word pro­tect­ed com­pressed archive with­in the com­mand line.

Cre­ate a 7z-com­pressed archive

7z a archive.7z /directory/or/file # create 7z compressed archive
7z a archive.7z * -p               # create password protected archive, enter the password in prompt
7z a archive.7z * -p'SECRET @#!'   # create password protected archive, append the password to the command
  • a – cre­ate archive,
  • -p – pass­word pro­tect­ed [fol­lowed by the pass phrase].

Ex­tract a 7z-com­pressed archive

7z x archive.7z     # extract an archive in the current directory
7z x archive.7z -p  # extract a password protected archive in the current directory
7z x archive.7z -p'SECRET @#!'              # append the password to the command
7z x archive.7z -p'SECRET' -o'/otput/dir/'  # set an output directory
  • x – ex­tract,
  • -o – out­put di­rec­to­ry.

Zip and Un­zip

Cre­ate an re­cur­sive archive for a di­rec­to­ry.

zip -r "archive-name.zip" "./directory-to-be-archived/"

Ex­tract archive.

unzip "archive-name.zip"

Rar and Un­rar

Some times the Lin­ux archive man­agers can't han­dle prop­er­ly RAR archives – for ex­am­ple look at this top­ic Ex­tract files with­in an .exe file. Here is how to ex­tract such files.

sudo apt install unrar
unrar x "PracticalMalwareAnalysis-Labs.exe"
unrar x "archive-name.rar"

Ref­er­ence