It is useful to store a group of files in one file for easy
backup, for transfer to another directory, or for transfer to
another computer. It is also useful to compress large files;
compressed files take up less disk space and download faster via
the Internet.
3.4.1. Using
File Roller
Red Hat Enterprise Linux includes a graphical utility called
File Roller. File
Roller can compress, decompress, and archive files in common
Unix and Linux formats. It has a simple interface and extensive
help documentation. To start File
Roller, select Archive Manager from the
(the main menu on the panel)
=> sub-menu. File Roller is also integrated into the desktop
environment and Nautilus.
|
Tip |
|
If you are using a file manager (such as Nautilus), you can double-click the file you wish
to unarchive or decompress to start File
Roller. The File Roller browser
window appears with the decompressed/unarchived file in a folder
for you to extract or browse.
|
3.4.1.1. Decompressing and
Unarchiving with File Roller
To unarchive and/or decompress a file, click the Open button on the main toolbar. A file menu pops
up, allowing you to choose the archive you wish to manipulate. For
example, if you have a file called foo.tar.gz located in your home directory,
highlight the file and click OK. The file
appears in the main File Roller browser
window as a folder, which you can navigate by double-clicking the
folder icon. File Roller preserves all
directory and subdirectory structures, which is convenient if you
are looking for a particular file in the archive. You can extract
individual files or entire archives by clicking the Extract button, choosing the directory in which to
save the unarchived files, and clicking OK.
3.4.1.2. Creating Archives
with File Roller
File Roller allows you to create
archives of your files and directories. To create a new archive,
click New on the toolbar. A file browser
pops up, allowing you to specify an archive name and the
compression technique. For example, you may choose a Tar Compressed with gzip (.tar.gz) format from the
drop-down menu and type the name of the archive file you want to
create. Click OK and your new archive is
ready to be filled with files and directories. To add files to your
new archive, click Add, which opens a
browser window that you can navigate to find the file or directory
to add to the archive. Click Add when you
are finished, and click =>
to close the archive.
|
Tip |
|
There is much more you can do with File
Roller than is explained here. Refer to the File Roller manual (available by clicking
=> ) for more information.
|
3.4.2.
Compressing Files at the Shell Prompt
Red Hat Enterprise Linux provides the bzip2, gzip, and zip tools for compression from a shell prompt. The
bzip2 compression tool is recommended
because it provides the most compression and is found on most
UNIX-like operating systems. The gzip
compression tool can also be found on most UNIX-like operating
systems. To transfer files between Linux and other operating system
such as MS Windows, use zip because it is
more compatible with the compression utilities available for
Windows.
Compression Tool |
File Extension |
Decompression Tool |
bzip2 |
.bz2 |
bunzip2 |
gzip |
.gz |
gunzip |
zip |
.zip |
unzip |
Table 3-1. Compression Tools
By convention, files compressed with bzip2 are given the extension .bz2, files compressed with gzip are given the extension .gz, and files compressed with zip are given the extension .zip.
Files compressed with bzip2 are
uncompressed with bunzip2, files
compressed with gzip are uncompressed with
gunzip, and files compressed with
zip are uncompressed with unzip.
3.4.2.1. Bzip2
and Bunzip2
To use bzip2 to compress a file, enter
the following command at a shell prompt:
The file is compressed and saved as filename.bz2.
To expand the compressed file, enter the following command:
The filename.bz2 compressed file is
deleted and replaced with filename.
You can use bzip2 to compress multiple
files and directories at the same time by listing them with a space
between each one:
bzip2 filename.bz2 file1 file2 file3 /usr/work/school
|
The above command compresses file1,
file2, file3,
and the contents of the /usr/work/school/
directory (assuming this directory exists) and places them in a
file named filename.bz2.
|
Tip |
|
For more information, enter man bzip2
and man bunzip2 at a shell prompt to read
the man pages for bzip2 and bunzip2.
|
3.4.2.2. Gzip and
Gunzip
To use gzip to compress a file, enter
the following command at a shell prompt:
The file is compressed and saved as filename.gz.
To expand the compressed file, enter the following command:
The filename.gz compressed file is
deleted and replaced with filename.
You can use gzip to compress multiple
files and directories at the same time by listing them with a space
between each one:
gzip -r filename.gz file1 file2 file3 /usr/work/school
|
The above command compresses file1,
file2, file3,
and the contents of the /usr/work/school/
directory (assuming this directory exists) and places them in a
file named filename.gz.
|
Tip |
|
For more information, enter man gzip
and man gunzip at a shell prompt to read
the man pages for gzip and gunzip.
|
3.4.2.3. Zip and
Unzip
To compress a file with zip, enter the
following command:
zip -r filename.zip filesdir
|
In this example, filename.zip
represents the file you are creating and filesdir represents the directory you want to put in
the new zip file. The -r option specifies
that you want to include all files contained in the filesdir directory recursively.
To extract the contents of a zip file,
enter the following command:
You can use zip to compress multiple
files and directories at the same time by listing them with a space
between each one:
zip -r filename.zip file1 file2 file3 /usr/work/school
|
The above command compresses file1,
file2, file3,
and the contents of the /usr/work/school/
directory (assuming this directory exists) and places them in a
file named filename.zip.
|
Tip |
|
For more information, enter man zip and
man unzip at a shell prompt to read the
man pages for zip and unzip.
|
3.4.3.
Archiving Files at the Shell Prompt
A tar file is a collection of several
files and/or directories in one file. This is a good way to create
backups and archives.
Some of tar's options include:
-
-c — create a new archive
-
-f — when used with the -c option, use the filename specified for the
creation of the tar file; when used with
the -x option, unarchive the specified
file
-
-t — show the list of files in the
tar file
-
-v — show the progress of the
files being archived
-
-x — extract files from an
archive
-
-z — compress the tar file with gzip
-
-j — compress the tar file with bzip2
To create a tar file, enter:
tar -cvf filename.tar directory/file
|
In this example, filename.tar
represents the file you are creating and directory/file represents the directory and file
you want to put in the archived file.
You can tar multiple files and
directories at the same time by listing them with a space between
each one:
tar -cvf filename.tar /home/mine/work /home/mine/school
|
The above command places all the files in the work and the school
subdirectories of /home/mine in a new
file called filename.tar in the current
directory.
To list the contents of a tar file, enter:
To extract the contents of a tar file, enter:
This command does not remove the tar
file, but it places copies of its unarchived contents in the
current working directory, preserving any directory structure that
the archive file used. For example, if the tarfile contains a file
called bar.txt within a directory called
foo/, then extracting the archive file
results in the creation of the directory foo/ in your current working directory with the
file bar.txt inside of it.
Remember, the tar command does not
compress the files by default. To create a tarred and bzipped
compressed file, use the -j option:
tar -cjvf filename.tbz file
|
tar files compressed with bzip2 are conventionally given the extension
.tbz; however, sometimes users archive
their files using the tar.bz2
extension.
The above command creates an archive file and then compresses it
as the file filename.tbz. If you
uncompress the filename.tbz file with the
bunzip2 command, the filename.tbz file is removed and replaced with
filename.tar.
You can also expand and unarchive a bzip tar file in one
command:
To create a tarred and gzipped compressed file, use the
-z option:
tar -czvf filename.tgz file
|
tar files compressed with gzip are conventionally given the extension
.tgz.
This command creates the archive file filename.tar and compresses it as the file
filename.tgz. (The file filename.tar is not saved.) If you uncompress the
filename.tgz file with the gunzip command, the filename.tgz file is removed and replaced with
filename.tar.
You can expand a gzip tar file in one command:
|
Tip |
|
Enter the command man tar for more
information about the tar command.
|