You can use Linux tar command with –exclude option to archive a directory excluding certain files and folders.
Example:
Create some files and directories:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
## create complex directory structure mkdir -p mydir1/{mydir21/mydir211,mydir11/mydir111} echo "hello" > mydir1/myfile11 echo "hello" > mydir1/mydir11/myfile111 echo "hello" > mydir1/mydir11/mydir111/myfile1111 echo "world" > mydir1/myfile21 echo "world" > mydir1/mydir21/myfile211 echo "world" > mydir1/mydir21/mydir211/myfile2111 tree ## ## . ## └── mydir1 ## ├── mydir11 ## │ ├── mydir111 ## │ │ └── myfile1111 ## │ └── myfile111 ## ├── mydir21 ## │ ├── mydir211 ## │ │ └── myfile2111 ## │ └── myfile211 ## ├── myfile11 ## └── myfile21 |
Ter directory excluding some files or folders:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## exclude file myfile111 and directory mydir21 tar --exclude='mydir1/mydir11/myfile111' \ --exclude='mydir1/mydir21' \ -zcvf mybackup1.tgz . ## archives ## ./ ## ./mydir1/ ## ./mydir1/mydir11/ ## ./mydir1/mydir11/mydir111/ ## ./mydir1/mydir11/mydir111/myfile1111 ## ./mydir1/myfile11 ## ./mydir1/myfile21 rm -rf my* |