This article will help you understand how you can handle the common file formats TAR, GZIP, BZIP and ZIP on Linux operating systems (including CentOS, Ubuntu) and even some Unix-based OSes like MacOS (OS X) via the command line either via SSH or a local terminal session.
On many Linux-like operating systems the command line tools for working with TAR, GZIP, BZIP and ZIP files are already installed, so you almost certainly don't need to install anything, but if you are running a minimal installation of your OS or if you've removed the tools in the past, follow the directions below to install what you need. Select the tab for the OS you are running:
|
The TAR file format is a very early archiving format that doesn't include any active compression by default. Often on Linux, items are tarred and then gzipped to compress them. TAR files typically end in .tar.
Execute the following to create a single .tar file containing all of the contents of the specified directory:
tar cvf FILENAME.tar DIRECTORY/ |
Replace FILENAME with whatever filename you want and DIRECTORY with the path to the directory you want to make into a tarball.
c: Create a TAR file.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename for the resulting TAR file.
Execute the following to create a single .tar.gz file containing all of the contents of the specified directory:
tar cvfz FILENAME.tar.gz DIRECTORY/ |
Replace FILENAME with whatever filename you want and DIRECTORY with the path to the directory you want to make into a compressed tarball.
Tarred files compressed with GZIP sometimes use the .tgz file extension. |
c: Create a TAR file.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename for the resulting TAR file.
z: Compress the TAR file with GZIP
Execute the following to create a single .tar.bz2 file containing all of the contents of the specified directory compressed with BZIP. (BZIP typically produces smaller files than GZIP, at the cost of more processing time.):
tar cvfj FILENAME.tar.bz2 DIRECTORY/ |
Replace FILENAME with whatever filename you want and DIRECTORY with the path to the directory you want to make into a compressed tarball.
c: Create a TAR file.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename for the resulting TAR file.
j: Compress the TAR file with BZIP2
Execute the following command to extract files and directories from an uncompressed .tar file:
tar xvf FILE.tar |
Replace FILE with the filename of the file you are trying to uncompress. The file will uncompress into the current directory.
x: Extract the contents from the file specified.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename to uncompress.
Execute the following command to extract files and directories from a GZIP compressed TAR file:
tar xvfz FILE.tar.gz |
Replace FILE with the filename of the file you are trying to uncompress. The file will uncompress into the current directory.
x: Extract the contents from the file specified.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename to uncompress.
z: Uncompress the tarball via GZIP.
Execute the following command to extract files and directories from a BZIP compressed TAR file:
tar xvfj FILE.tar.bz2 |
Replace FILE with the filename of the file you are trying to uncompress. The file will uncompress into the current directory.
x: Extract the contents from the file specified.
v: Output verbosely (you'll be told exactly what is happening in detail).
f: Specify a filename to uncompress.
j: Uncompress the tarball via BZIP2.
If you'd rather specify a different directory to extract files to rather than just dumping everything in the current directory add -C /PATH/TO/DIRECTORY/ to the commands above. Replace /PATH/TO/DIRECTORY/ with the actual path to the directory where you want the files to be placed. |
Zip is probably the most common compressed archiving format in the world. Zip files usually end in .zip.
Execute the following command to place everything inside a specified directory into a compressed ZIP file.
zip -r FILE.zip DIRECTORY/ |
-r: Recursively compress all files and directories contained within DIRECTORY/ in the zip file (otherwise you only get the top level files).
Execute the following command to uncompress the items in the ZIP file into the current directory.
unzip FILE.zip |