tar เป็นคำสั่ง Unix ใช้สำหรับบีบอัดไฟล์และโฟลเดอร์ ให้ขนาดลดลง เพื่อลดพื้นที่ในการเก็บและสะดวกต่อการย้ายย้อมูล โดนมีรูปแบบต่างๆ เช่น .tar, .tar.gz, .cpio, .tar.bz2, .zip, .rar, etc. สำหรับบทความนี้จะนำเสนอคำสั่ง tar --exclude option คือการบีบอัดไฟล์โดยมีเงื่อนไข ยกเว้นไฟล์ที่ไม่ต้องการให้บีบอัด
ทดสอบสร้างไฟล์เดอร์
1. Open terminal และสร้างโฟลเดอร์ ด้วยคำสั่ง mkdir
user@user:~$ mkdir main_folder
user@user:~$ cd main_folder
user@user:~/main_folder$ touch file1.txt file2.txt file3.txt
user@user:~/main_folder$ mkdir mkdir folder1 folder2 folder3
user@user:~/main_folder$ ls
file1.txt file2.txt file3.txt folder1 folder2 folder3
$ tar --exclude="pattern" [options] [archive_name] [path]
option อื่นๆ-z: compresses the files and directories using gzip-c: creates a new archive file-v: verbosely lists the files and directories processed-f: allows us to specify a filename for the archive created-x: extract files from an archive-exclude: excludes file1.txt file when creating the archivetar(1) — Linux manual page
$ tar --exclude='file1.txt' -zcvf backup.tar.gz . ./ ./folder2/ ./folder3/ ./file3.txt ./file2.txt ./folder1/
ตรวจสอบแตกไฟล์ด้วยคำสั่ง$ tar -zxvf backup.tar.gz ./ ./folder2/ ./folder3/ ./backup.tar.gz ./file3.txt ./file2.txt ./folder1/
จากผลลัพธ์การแตกไฟล์ backup.tar.gz จะไม่มีไฟล์ file1.txt
$ tar --exclude='file1.txt' --exclude='folder1' -zcvf backup.tar.gz. ./ ./folder2/ ./folder3/ ./file3.txt ./file2.txt
ตรวจสอบแตกไฟล์ด้วยคำสั่ง$ tar -zxvf backup.tar.gz ./ ./folder2/ ./folder3/ ./file3.txt ./file2.txt
จากผลลัพธ์การแตกไฟล์ backup.tar.gz จะไม่มีไฟล์ file1.txt และไม่มีโฟลเดอร์ folder1
$ tar --exclude='*.txt' -zcvf backup.tar.gz. ./ ./folder2/ ./folder3/ ./folder1/
ตรวจสอบแตกไฟล์ด้วยคำสั่ง$ tar -zxvf backup.tar.gz ./ ./folder3/ ./folder2/ ./folder1/
จากผลลัพธ์การแตกไฟล์ backup.tar.gz จะไม่มีไฟล์ที่นามสกุล .txt