Lesson 1.16: Archiving Files & Directories
Command: tar [option] < files/dir to be archived >
Option
- -c, --create : create a new archive
- -v, --verbose : verbosely list files processed
- -f : < archive filename > to specify archive file
- -t : list contents of an archive
- -r : add new file/dir into an archive
- -x : extract files/dir from an archive
- -z : greate a
gzip
compressed archive (tar.gz, .tgz) - -j : create a
bzip2
compressed archive (tar.bz2 , .tbz)
Example 1: Creating an archive
[sanjeeb@assignmentserver class]$ ls
appstream.conf dir4 krb5.conf nsswitch.conf sestatus.conf
asound.conf dir5 ld.so.conf pbm2ppa.conf sysctl.conf
brltty.conf dnsmasq.conf libuser.conf php-fpm.conf updatedb.conf
chrony.conf dracut.conf locale.conf pnm2ppa.conf usb_modeswitch.conf
dir1 fuse.conf logrotate.conf resolv.conf
dir2 host.conf man_db.conf rsyncd.conf
dir3 kdump.conf mke2fs.conf rsyslog.conf
[sanjeeb@assignmentserver class]$ tar -cvf confanddir.tar /home/sanjeeb/class/*.conf /home/sanjeeb/class/dir{1..5}
[sanjeeb@assignmentserver class]$ ls | grep .tar
confanddir.tar
Example 2: Listing files/dir inside the archive
[sanjeeb@assignmentserver class]$ tar -tvf confanddir.tar
-rw-r--r-- sanjeeb/sanjeeb 833 2024-09-19 17:00 home/sanjeeb/class/appstream.conf
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/asound.conf
-rw-r--r-- sanjeeb/sanjeeb 28974 2024-09-19 17:00 home/sanjeeb/class/brltty.conf
-rw-r--r-- sanjeeb/sanjeeb 1371 2024-09-19 17:00 home/sanjeeb/class/chrony.conf
-rw-r--r-- sanjeeb/sanjeeb 27839 2024-09-19 17:00 home/sanjeeb/class/dnsmasq.conf
-rw-r--r-- sanjeeb/sanjeeb 117 2024-09-19 17:00 home/sanjeeb/class/dracut.conf
-rw-r--r-- sanjeeb/sanjeeb 38 2024-09-19 17:00 home/sanjeeb/class/fuse.conf
-rw-r--r-- sanjeeb/sanjeeb 9 2024-09-19 17:00 home/sanjeeb/class/host.conf
-rw-r--r-- sanjeeb/sanjeeb 8979 2024-09-19 17:00 home/sanjeeb/class/kdump.conf
-rw-r--r-- sanjeeb/sanjeeb 880 2024-09-19 17:00 home/sanjeeb/class/krb5.conf
-rw-r--r-- sanjeeb/sanjeeb 28 2024-09-19 17:00 home/sanjeeb/class/ld.so.conf
-rw-r--r-- sanjeeb/sanjeeb 2391 2024-09-19 17:00 home/sanjeeb/class/libuser.conf
-rw-r--r-- sanjeeb/sanjeeb 19 2024-09-19 17:00 home/sanjeeb/class/locale.conf
-rw-r--r-- sanjeeb/sanjeeb 496 2024-09-19 17:00 home/sanjeeb/class/logrotate.conf
-rw-r--r-- sanjeeb/sanjeeb 5235 2024-09-19 17:00 home/sanjeeb/class/man_db.conf
-rw-r--r-- sanjeeb/sanjeeb 1208 2024-09-19 17:00 home/sanjeeb/class/mke2fs.conf
-rw-r--r-- sanjeeb/sanjeeb 2124 2024-09-19 17:00 home/sanjeeb/class/nsswitch.conf
-rw-r--r-- sanjeeb/sanjeeb 1362 2024-09-19 17:00 home/sanjeeb/class/pbm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 4937 2024-09-19 17:00 home/sanjeeb/class/php-fpm.conf
-rw-r--r-- sanjeeb/sanjeeb 6300 2024-09-19 17:00 home/sanjeeb/class/pnm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/resolv.conf
-rw-r--r-- sanjeeb/sanjeeb 458 2024-09-19 17:00 home/sanjeeb/class/rsyncd.conf
-rw-r--r-- sanjeeb/sanjeeb 3380 2024-09-19 17:00 home/sanjeeb/class/rsyslog.conf
-rw-r--r-- sanjeeb/sanjeeb 216 2024-09-19 17:00 home/sanjeeb/class/sestatus.conf
-rw-r--r-- sanjeeb/sanjeeb 449 2024-09-19 17:00 home/sanjeeb/class/sysctl.conf
-rw-r--r-- sanjeeb/sanjeeb 624 2024-09-19 17:00 home/sanjeeb/class/updatedb.conf
-rw-r--r-- sanjeeb/sanjeeb 1523 2024-09-19 17:00 home/sanjeeb/class/usb_modeswitch.conf
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir1/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir2/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir3/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir4/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir5/
Example 4: Adding new files/dir inside an existing archive
[sanjeeb@assignmentserver class]$ tar -rvf confanddir.tar /home/sanjeeb/class/dir{6..10}
[sanjeeb@assignmentserver class]$ tar -rvf confanddir.tar /home/sanjeeb/class/file{1..5}
#Listing the added files
[sanjeeb@assignmentserver class]$ tar -tvf confanddir.tar
-rw-r--r-- sanjeeb/sanjeeb 833 2024-09-19 17:00 home/sanjeeb/class/appstream.conf
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/asound.conf
-rw-r--r-- sanjeeb/sanjeeb 28974 2024-09-19 17:00 home/sanjeeb/class/brltty.conf
-rw-r--r-- sanjeeb/sanjeeb 1371 2024-09-19 17:00 home/sanjeeb/class/chrony.conf
-rw-r--r-- sanjeeb/sanjeeb 27839 2024-09-19 17:00 home/sanjeeb/class/dnsmasq.conf
-rw-r--r-- sanjeeb/sanjeeb 117 2024-09-19 17:00 home/sanjeeb/class/dracut.conf
-rw-r--r-- sanjeeb/sanjeeb 38 2024-09-19 17:00 home/sanjeeb/class/fuse.conf
-rw-r--r-- sanjeeb/sanjeeb 9 2024-09-19 17:00 home/sanjeeb/class/host.conf
-rw-r--r-- sanjeeb/sanjeeb 8979 2024-09-19 17:00 home/sanjeeb/class/kdump.conf
-rw-r--r-- sanjeeb/sanjeeb 880 2024-09-19 17:00 home/sanjeeb/class/krb5.conf
-rw-r--r-- sanjeeb/sanjeeb 28 2024-09-19 17:00 home/sanjeeb/class/ld.so.conf
-rw-r--r-- sanjeeb/sanjeeb 2391 2024-09-19 17:00 home/sanjeeb/class/libuser.conf
-rw-r--r-- sanjeeb/sanjeeb 19 2024-09-19 17:00 home/sanjeeb/class/locale.conf
-rw-r--r-- sanjeeb/sanjeeb 496 2024-09-19 17:00 home/sanjeeb/class/logrotate.conf
-rw-r--r-- sanjeeb/sanjeeb 5235 2024-09-19 17:00 home/sanjeeb/class/man_db.conf
-rw-r--r-- sanjeeb/sanjeeb 1208 2024-09-19 17:00 home/sanjeeb/class/mke2fs.conf
-rw-r--r-- sanjeeb/sanjeeb 2124 2024-09-19 17:00 home/sanjeeb/class/nsswitch.conf
-rw-r--r-- sanjeeb/sanjeeb 1362 2024-09-19 17:00 home/sanjeeb/class/pbm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 4937 2024-09-19 17:00 home/sanjeeb/class/php-fpm.conf
-rw-r--r-- sanjeeb/sanjeeb 6300 2024-09-19 17:00 home/sanjeeb/class/pnm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/resolv.conf
-rw-r--r-- sanjeeb/sanjeeb 458 2024-09-19 17:00 home/sanjeeb/class/rsyncd.conf
-rw-r--r-- sanjeeb/sanjeeb 3380 2024-09-19 17:00 home/sanjeeb/class/rsyslog.conf
-rw-r--r-- sanjeeb/sanjeeb 216 2024-09-19 17:00 home/sanjeeb/class/sestatus.conf
-rw-r--r-- sanjeeb/sanjeeb 449 2024-09-19 17:00 home/sanjeeb/class/sysctl.conf
-rw-r--r-- sanjeeb/sanjeeb 624 2024-09-19 17:00 home/sanjeeb/class/updatedb.conf
-rw-r--r-- sanjeeb/sanjeeb 1523 2024-09-19 17:00 home/sanjeeb/class/usb_modeswitch.conf
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir1/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir2/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir3/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir4/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir5/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir6/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir7/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir8/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir9/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir10/
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file1
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file2
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file3
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file4
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file5
Example 5: Compressing an archive file
[sanjeeb@assignmentserver class]$ gzip -v confanddir.tar
confanddir.tar: 73.8% -- replaced with confanddir.tar.gz
[sanjeeb@assignmentserver class]$ ls -lh confanddir.tar.gz
-rw-r--r--. 1 sanjeeb sanjeeb 35K Sep 19 19:29 confanddir.tar.gz
Example 6: Creating archive and compress it at the same time using gzip
[sanjeeb@assignmentserver class]$ ls
appstream.conf dir5 file3 locale.conf rsyncd.conf
asound.conf dir6 file4 logrotate.conf rsyslog.conf
brltty.conf dir7 file5 man_db.conf sestatus.conf
chrony.conf dir8 fuse.conf mke2fs.conf sysctl.conf
dir1 dir9 host.conf nsswitch.conf
dir10 dnsmasq.conf kdump.conf pbm2ppa.conf updatedb.conf
dir2 dracut.conf krb5.conf php-fpm.conf usb_modeswitch.conf
dir3 file1 ld.so.conf pnm2ppa.conf
dir4 file2 libuser.conf resolv.conf
[sanjeeb@assignmentserver class]$ mkdir tar
[sanjeeb@assignmentserver class]$ cd tar
[sanjeeb@assignmentserver tar]$ tar -zcvf tarcompfile.tar.gz /home/sanjeeb/class/
[sanjeeb@assignmentserver tar]$ ls
tarcompfile.tar.gz
[sanjeeb@assignmentserver tar]$ tar -tvf tarcompfile.tar.gz
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:37 home/sanjeeb/class/
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/asound.conf
-rw-r--r-- sanjeeb/sanjeeb 28974 2024-09-19 17:00 home/sanjeeb/class/brltty.conf
-rw-r--r-- sanjeeb/sanjeeb 1371 2024-09-19 17:00 home/sanjeeb/class/chrony.conf
-rw-r--r-- sanjeeb/sanjeeb 27839 2024-09-19 17:00 home/sanjeeb/class/dnsmasq.conf
-rw-r--r-- sanjeeb/sanjeeb 117 2024-09-19 17:00 home/sanjeeb/class/dracut.conf
-rw-r--r-- sanjeeb/sanjeeb 38 2024-09-19 17:00 home/sanjeeb/class/fuse.conf
-rw-r--r-- sanjeeb/sanjeeb 9 2024-09-19 17:00 home/sanjeeb/class/host.conf
-rw-r--r-- sanjeeb/sanjeeb 8979 2024-09-19 17:00 home/sanjeeb/class/kdump.conf
-rw-r--r-- sanjeeb/sanjeeb 880 2024-09-19 17:00 home/sanjeeb/class/krb5.conf
-rw-r--r-- sanjeeb/sanjeeb 28 2024-09-19 17:00 home/sanjeeb/class/ld.so.conf
-rw-r--r-- sanjeeb/sanjeeb 2391 2024-09-19 17:00 home/sanjeeb/class/libuser.conf
-rw-r--r-- sanjeeb/sanjeeb 19 2024-09-19 17:00 home/sanjeeb/class/locale.conf
-rw-r--r-- sanjeeb/sanjeeb 496 2024-09-19 17:00 home/sanjeeb/class/logrotate.conf
-rw-r--r-- sanjeeb/sanjeeb 5235 2024-09-19 17:00 home/sanjeeb/class/man_db.conf
-rw-r--r-- sanjeeb/sanjeeb 1208 2024-09-19 17:00 home/sanjeeb/class/mke2fs.conf
-rw-r--r-- sanjeeb/sanjeeb 2124 2024-09-19 17:00 home/sanjeeb/class/nsswitch.conf
-rw-r--r-- sanjeeb/sanjeeb 1362 2024-09-19 17:00 home/sanjeeb/class/pbm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 4937 2024-09-19 17:00 home/sanjeeb/class/php-fpm.conf
-rw-r--r-- sanjeeb/sanjeeb 6300 2024-09-19 17:00 home/sanjeeb/class/pnm2ppa.conf
-rw-r--r-- sanjeeb/sanjeeb 55 2024-09-19 17:00 home/sanjeeb/class/resolv.conf
-rw-r--r-- sanjeeb/sanjeeb 458 2024-09-19 17:00 home/sanjeeb/class/rsyncd.conf
-rw-r--r-- sanjeeb/sanjeeb 3380 2024-09-19 17:00 home/sanjeeb/class/rsyslog.conf
-rw-r--r-- sanjeeb/sanjeeb 216 2024-09-19 17:00 home/sanjeeb/class/sestatus.conf
-rw-r--r-- sanjeeb/sanjeeb 449 2024-09-19 17:00 home/sanjeeb/class/sysctl.conf
-rw-r--r-- sanjeeb/sanjeeb 624 2024-09-19 17:00 home/sanjeeb/class/updatedb.conf
-rw-r--r-- sanjeeb/sanjeeb 1523 2024-09-19 17:00 home/sanjeeb/class/usb_modeswitch.conf
-rw-r--r-- sanjeeb/sanjeeb 833 2024-09-19 17:00 home/sanjeeb/class/appstream.conf
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir1/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir2/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir3/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir4/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir5/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir6/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir7/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir8/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir9/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir10/
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file1
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file2
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file3
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file4
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/file5
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:37 home/sanjeeb/class/tar/
-rw-r--r-- sanjeeb/sanjeeb 0 2024-09-19 19:37 home/sanjeeb/class/tar/tarcompfile.tar.gz
Example 7: Creating archive and compress it at the same time using bzip
[sanjeeb@assignmentserver class]$ mkdir bziptar
[sanjeeb@assignmentserver class]$ cd bziptar/
[sanjeeb@assignmentserver bziptar]$ tar -jcvf bziptarcomp.tar.bz2 /home/sanjeeb/class/dir{1..10}
tar: Removing leading `/` from member names
/home/sanjeeb/class/dir1/
/home/sanjeeb/class/dir2/
/home/sanjeeb/class/dir3/
/home/sanjeeb/class/dir4/
/home/sanjeeb/class/dir5/
/home/sanjeeb/class/dir6/
/home/sanjeeb/class/dir7/
/home/sanjeeb/class/dir8/
/home/sanjeeb/class/dir9/
/home/sanjeeb/class/dir10/
# List the files inside compressed archive
[sanjeeb@assignmentserver bziptar]$ tar -tvf bziptarcomp.tar.bz2
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir1/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir2/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir3/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir4/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:15 home/sanjeeb/class/dir5/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir6/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir7/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir8/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir9/
drwxr-xr-x sanjeeb/sanjeeb 0 2024-09-19 19:21 home/sanjeeb/class/dir10/
[sanjeeb@assignmentserver bziptar]$ ls
bziptarcomp.tar.bz2
Example 8: Extracting from compressed archive
# For Bzip use -j , and for Gzip use -z
[sanjeeb@assignmentserver extract]$ tar -jxvf ../bziptar/bziptarcomp.tar.bz2
home/sanjeeb/class/dir1/
home/sanjeeb/class/dir2/
home/sanjeeb/class/dir3/
home/sanjeeb/class/dir4/
home/sanjeeb/class/dir5/
home/sanjeeb/class/dir6/
home/sanjeeb/class/dir7/
home/sanjeeb/class/dir8/
home/sanjeeb/class/dir9/
home/sanjeeb/class/dir10/