DEV Community

loading...

linux : archiving & compression

zakiarsyad profile image Zaki Arrozi Arsyad Updated on ・2 min read

Archiving is the process of combining multiple files and directories (same or different sizes) into one file. Compression is the process of reducing the size of a file or directory.

Common type of compression:

  • Gzip : with extension .tar.gz. It has fastest compression time.
  • Bzip : with extension .tar.bz2
  • Xz : with extension .tar.xz. It has smallest size compression.

Common programs for archiving files:

  • tar
  • zip
  • gzip
  • bzip2
  • xz

We will talk about how we use tar command. It has a lot of option that we can use:

  • -c or --create : create a new file archive
  • -f or --file : filename
# create an archive from multiple files
tar -cf ARCHIVE.tar FILE1.txt FILE2.txt FILE3.txt

# create an archive from a directory
tar -cf ARCHIVE.tar DIRECTORY

# using long command
tar --create --file ARCHIVE.tar DIRECTORY
Enter fullscreen mode Exit fullscreen mode
  • -X or --exclude : exclude a file
# exclude a file when creating an archive
tar -cf ARCHIVE.tar DIRECTORY --exclude=FILE.txt
Enter fullscreen mode Exit fullscreen mode
  • -x or --extract : extract an archive
# extract an archive file
tar -xf ARCHIVE.tar

# using long command
tar --extract --file ARCHIVE.tar
Enter fullscreen mode Exit fullscreen mode
  • -z : zip or unzip using gzip

create a compressed archive

# create an archive with gzip compression
tar -czf ARCHIVE.tar.gz DIRECTORY

# using gzip
gzip ARCHIVE.tar.gz DIRECTORY
Enter fullscreen mode Exit fullscreen mode

extract a compressed archive

# extract an archive with gzip compression
tar -xzf ARCHIVE.tar.gz

# using gunzip --decompress
gunzip -d ARCHIVE.tar.gz
Enter fullscreen mode Exit fullscreen mode
  • -j : zip or unzip using bzip2

create a compressed archive

# create an archive with bzip compression
tar -cjf ARCHIVE.tar.bz2 DIRECTORY

# using bzip2
bzip2 ARCHIVE.tar.bz2 DIRECTORY
Enter fullscreen mode Exit fullscreen mode

extract a compressed archive

# extract an archive with bzip compression
tar -xjf ARCHIVE.tar.bz2

# using bunzip2 --decompress
bunzip2 -d ARCHIVE.tar.bz2
Enter fullscreen mode Exit fullscreen mode
  • -J : zip or unzip using xz

create a compressed archive

# create an archive with xz compression
tar -cJf ARCHIVE.tar.xz DIRECTORY

# using xz
xz ARCHIVE.tar.xz DIRECTORY
Enter fullscreen mode Exit fullscreen mode

extract a compressed archive

# extract an archive with xz compression
tar -xJf ARCHIVE.tar.xz

# using unxz --decompress
unxz -d ARCHIVE.tar.xz
Enter fullscreen mode Exit fullscreen mode
  • zip and unzip

create a compressed archive

# create using zip
zip ARCHIVE.zip DIRECTORY
Enter fullscreen mode Exit fullscreen mode

extract a compressed archive

# extract using unzip
unzip ARCHIVE.zip
Enter fullscreen mode Exit fullscreen mode
  • -t or --list : list the contents of an archive without extracting it
# display contents of an archive
tar -tf ARCHIVE.tar

# display contents using gzip
gzip -l ARCHIVE.tar.gz

# display contents using unzip
unzip -l ARCHIVE.zip
Enter fullscreen mode Exit fullscreen mode
  • -r or --append : append files to the end of an archive
# append files to an archive
tar -rf ARCHIVE.tar FILE.txt

# using --append
tar --append -file ARCHIVE.tar FILE.txt
Enter fullscreen mode Exit fullscreen mode
  • -u or --update : Append files which are newer than the corresponding copy in the archive
# append files to an archive
tar -uf ARCHIVE.tar FILE.txt

# using --append
tar --update -file ARCHIVE.tar FILE.txt
Enter fullscreen mode Exit fullscreen mode
  • delete : delete files inside an archive
# delete from the archive
tar --delete --file ARCHIVE.tar FILE.txt
Enter fullscreen mode Exit fullscreen mode
  • -C or --directory : change the directory
# change location of unarchived files
tar -xf ARCHIVE.tar -C DIRECTORY
Enter fullscreen mode Exit fullscreen mode
  • -v or --verbose : see the detailed output
    We can combine this options with all others

  • --wildcards : matching on the filenames within an archive

# extract a particular type of file
tar -xf ARCHIVE.tar --wildcards "*.txt"
Enter fullscreen mode Exit fullscreen mode

Discussion (0)

pic
Editor guide