Note: This is an RHCSA 7 exam objective.
To compress a file, type:
# gzip file # bzip2 file
To uncompress a file, type:
# gunzip file.gz # bunzip2 file.bz2
To archive and compress a directory (with the SELinux contexts), type:
# tar --selinux -czvf directory.tgz directory
Note: Try to avoid using full path when specifying the directory path, use relative path, it will be easier when restoring.
Alternatively, you can group both operations (tar+compression) in one command (respectively for gzip and bzip2 content):
# tar cvzf directory.tgz directory # tar cvjf directory.bz2 directory
To unpack and uncompress an archive file (respectively for gunzip and bunzip2 content) (with the SELinux contexts), type:
# tar --selinux xzvf directory.tgz # tar --selinux xjvf directory.bz2
To list the archive content (respectively for gunzip and bunzip2 content), type:
# tar tzvf directory.tgz # tar tjvf directory.bz2
To archive a directory with the star command (with the SELinux contexts), type:
# yum install -y star # star -xattr -H=exustar -c -f=directory.star directory
To unpack a archive file, type:
# star -x -f=directory.star
Additional Resources
The linoxide website provides a tutorial about Relax and Recover, the new Open Source disaster recovery solution.
If you are like me and you prefer to remember one command, you can also use the z and j directives with tar for creating compressed archives instead of using bzip2/gzip
Ex:
# tar cvfz archive.tar.gz archive/ #gzip archive creation
# tar cvfj archive.tar.bz2 archive/ #bzip2 archive creation
To some, it’s probably more complex than to use gzip/gunzip etc… But if I can get away with using one command to do multiple things, I always go that route.
I understand your point but I personally prefer to use different commands 😉
I will add your interesting suggestion.
Thanks.
That’s what makes Linux so beautiful if you ask me. So many ways of getting from point A to point B 🙂
Just a few minor mistakes I’ve noticed in your article.
1. This will NOT work in the way it should as ‘f’ parameter takes an argument (see manual):
-f, –file=ARCHIVE
use archive file or device ARCHIVE
# tar cvfz directory.tgz directory —> tar cvzf directory.tgz directory
# tar cvfj directory.bz2 directory —> tar cvjf directory.bz2 directory
2. You create an archive taking selinux context into account:
tar –selinux -czvf directory.tgz directory
But later you unpack it without “–selinux” parameter which will unpack the contents without selinux contexts
# tar xzvf directory.tgz —> tar –selinux xzvf directory.tgz
# tar xjvf directory.bz2 —> tar –selinux xjvf directory.bz2
3. I guess it’s also worth mentioning (though it might not be relevant for RHCSA exam) that you can include:
–acls – POSIX ACLs
–xattrs- Extended attributes
into your tar archive.
I took into account your two first comments. Thanks.
Hi,
Can you please help to answer the below:
1-Is FTP a part of RHCSA objectives?
2-Is HTTP a part of RHCSA objectives?
3-Is VNC access a part of RHCSA objectives?
4-Is logrotate a part of RHCSA objectives?
If there are not, what is the required info we should have about them for the RHCSA?
Thanks
FTP, HTTP, VNC and logrotate are not part of the RHCSA 7 objectives.
However, you are supposed to know how to start/stop/restart or get the status from any of these services with the systemctl command.
“Note: Try to avoid using full path when specifying the directory path, use relative path, it will be easier when restoring”
What do you mean by this? Can you please elaborate?
When you execute the following command: # tar cvf /root/etc dir.tar
You create a file called dir.tar containing the /root/etc directory.
The problem occurs when you want to restore the directory: there is no way to avoid squashing the current content of the /root/etc directory. If there was a file with the same name, it is squashed by the new file and you can’t restore the /root/etc directory in another place.
All this doesn’t occur if you don’t use a full path.
If my explanation is not clear, experiment by yourself, you will see.
Thank you. Appreciate it. I am just going through the notes before installing rhel and playing with it. I will try and cut down on the stupid questions. Sorry
You’re welcome.
By default, tar removes leading “/”.
If you really want to use an absolute path, apply -P/–absolute-names.