Archive, Compress, and Extract Files in Linux Using the Command Line

tar and gzip provide a standard interface for creating archives and compressing files on Linux. These utilities take a large number of files, save them together in an archive, and compresses the archive to save space. tar does not compress files by itself. Used in conjunction with gzip, an archived file can be compressed to reduce disk space. The resulting archived file has the file extension, tar.gz and is sometimes called a “tarball”.

Archive a Directory

  1. Make a directory on your system and create a text file:

    mkdir testdir && touch testdir/example.txt
    
  2. Use tar to archive the directory:

    tar -cvf testdir.tar testdir/
    
  3. Check for the newly archived file:

    ls
    
      
    tesdir  testdir.tar
    
    

Compression with gzip

  1. Compress the file using gzip:

    gzip testdir.tar
    
  2. Checking for the file will show:

    ls
    
      
    testdir  testdir.tar.gz
    
    
  3. The chained file extension (.tar.gz) indicates that this is a compressed archive. You can see the difference in size between the two files:

    ls -l --block-size=KB
    
      
    total 9kB
    drwxrwxr-x 2 linode linode 5kB Jan 30 13:13 testdir
    -rw-rw-r-- 1 linode linode 1kB Jan 30 13:29 testdir.tar.gz
    
    

Extract a Tarball