tar: Exclude directories/files

Written by Benjamin Cane on 2011-07-26

Tar is a essential commands for a Linux/Unix user, when it comes to archiving or copying files tar is my favorite.

Today's shell-fu examples will show you how to create a tar file that excludes specified directories and files. You can achieve this two ways.

1. Using the --exclude flag

[[email protected] play]$ tar -cvzf ../tar.tgz --exclude="./somedir" ./  
./  
./files.tgz  
./list.txt  
./3.txt  
./2.txt  
./4.txt  
./1.txt

2. Using the -X flag followed by a file to read

[[email protected] play]$ cat list.txt   
1.txt  
2.txt  
3.txt  
[[email protected] play]$ tar -cvzf ../tar.tgz -X list.txt ./  
./  
./files.tgz  
./list.txt  
./somedir/  
./4.txt

The second option is very handy when you have a large list of files/directories to exclude.


Picture of Benjamin Cane

Benjamin's specialty is keeping the lights on for mission critical systems. He is currently building applications that enable high concurrency financial transactions.

Recently Benjamin published his first book; Red Hat Enterprise Linux Troubleshooting Guide. In addition to writing, he has several Open Source projects focused on making Ops easier. These projects include Automatron, a project enabling auto-healing infrastructure for the masses.


Publications

Identify, capture and resolve common issues faced by Red Hat Enterprise Linux administrators using best practices and advanced troubleshooting techniques

What people are saying:
Excellent, excellent resource for practical guidance on how to troubleshoot a wide variety of problems on Red Hat Linux. I particularly enjoyed how the author made sure to provide solid background and practical examples. I have a lot of experience on Red Hat but still came away with some great practical tools to add to my toolkit. - Amazon Review