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/
All systems normal

© 2025 2023 Sanjeeb KC. All rights reserved.