เรามักจะบีบอัด (compress)ไฟล์ให้มีขนาดเล็กลงเพื่อประหยัดพื้นที่ของฮาด์ดิสก์หรือเพื่อความรวดเร็วในการส่งไฟล์ข้อมูลข้ามเครือข่าย โดยลินุกซ์มีโปรแกรมในการบีบอัดไฟล์ให้เลือกใช้อยู่หลายตัว เช่น gzip (เป็นโปรแกรมที่ใช้กันมากที่สุด), bzip2 (สามารถบีบอัดไฟล์ให้มีขนาดเล็กได้มากกว่า gzip แต่ใช้เวลาในการทำงานมากกว่า มักใช้กับไฟล์ที่ใหญ่มากๆ), xz (สามารถบีบอัดไฟล์ให้มีขนาดได้เล็กมากที่สุดแต่ทำงานช้ากว่ามาก ปัจจุบันใช้ในการบีบอัดไฟล์ archive ของเคอร์เนล) และ zip (ในลินุกซ์ไม่ค่อยใช้ zip ในการบีบอัดไฟล์กันสักเท่าไร ส่วนมากใช้เพื่อขยายไฟล์ที่ได้รับมาจาก Windows) นอกจากนี้ยังมีโปรแกม tar ที่ใช้ในการรวมไฟล์หลายๆไฟล์ไว้ในไฟล์เดียวเรียกว่าไฟล์ archive จากนั้นจึงค่อยบีบอัดไฟล์ archive ทีเดียว ตัวอย่างผลลัพธ์ที่ได้จะเป็น filename.tar.gz ถ้าใช้ tar และ gzip 

     ข้อแตกต่างของโปรแกรมบีบอัดแต่ละตัวอยู่ที่จำนวนพื้นที่ที่ใช้ในการทำงาน ความเร็วในการทำงานและขนาดไฟล์หลังบีบอัดแล้ว ส่วนการขยายไฟล์ไม่ค่อยมีข้อแตกต่างกันเท่าไรนัก

คำสั่ง gzip

     การบีบอัดไฟล์ด้วยโปรแกรม gzip ทำได้โดยใช้คำสั่ง gzip ตัวอย่างเช่น 

  • gzip *  เป็นการสั่งบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็คทอรี่ปัจจุบัน ไฟล์ที่ถูกบีบอัดแล้วจะมีชื่อ .gz ต่อท้าย
  • gzip -r projectX เป็นการสั่งบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็คทอรี่ projectX รวมถึงไดเร็คทอรี่ย่อยทั้งหมดภายใต้นั้น
  • gunzip file.gz หรือ gzip -d เป็นการสั่งขยายไฟล์ที่ถูกบีบอัด

คำสั่ง bzip2

     การบีบอัดไฟล์ด้วยโปรแกรม bzip2 ทำได้โดยใช้คำสั่ง bzip2 ตัวอย่างเช่น 

  • bzip2 * เป็นการสั่งบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็คทอรี่ปัจจุบัน ไฟล์ที่ถูกบีบอัดแล้วจะมีชื่อ .bz2 ต่อท้าย
  • bunzip2 *.bz2 หรือ bzip2 -d เป็นการสั่งขยายไฟล์ที่ถูกบีบอัด

คำสั่ง xz

     การบีบอัดไฟล์ด้วยโปรแกรม xz ทำได้โดยใช้คำสั่ง xz ตัวอย่างเช่น 

  • xz *  เป็นการสั่งบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็คทอรี่ปัจจุบัน ไฟล์ที่ถูกบีบอัดแล้วจะมีชื่อ .xz ต่อท้าย
  • xz filename เป็นการสั่งบีบอัดไฟล์ชื่อ filename เป็น filename.xz ด้วยการบีบอัดใน level 6 ซึ่งเป็น level มาตรฐาน และลบไฟล์ filename หลังจากทำงานเสร็จ
  • xz -dk bar.x เป็นการสั่งขยายไฟล์ที่ถูกบีบอัด
  • xz -dcf a.txt b.txt.xz > abcd.txt เป็นการสั่งขยายไฟล์มากกว่าหนึ่งไฟล์โดยมีทั้งไฟล์ที่ถูกบีบอัดและไฟล์ที่ไม่ได้ถูกบีบอัด โดยให้ผลลัพธ์รวมอยู่ในไฟล์เดียวกัน โดยใช้เพียงคำสั่งเดียว
  • xz -d *.xz เป็นการสั่งขยายไฟล์ทุกไฟลืที่ถูกบีบอัดด้วย xz

คำสั่ง zip

การบีบอัดไฟล์ด้วยโปรแกรม zip ทำได้โดยใช้คำสั่ง zip ตัวอย่างเช่น 

  • zip backup * เป็นการสั่งบีบอัดไฟล์ทั้งหมดภายใต้ไดเร็คทอรี่ปัจจุบัน ไฟล์ที่ถูกบีบอัดแล้วจะมีชื่อ backup.zip
  • zip -r backup.zip ~ เป็นการสั่งบีบอัดไฟล์และไดเร็คทอรี่ ทั้งหมดภายใต้ไดเร็คทอรี่ login ไฟล์ที่ถูกบีบอัดแล้วจะมีชื่อ backup.zip 
  • unzip backup.zip เป็นการสั่งขยายไฟล์และไดเร็คทอรี่ที่ถูกบีบอัดในไดเร็คทอรี่ปัจจุุบัน (present working directry)

คำสั่ง tar

     tar ย่อมาจาก tape archive เพราะเดิมที tar ถูกใช้ในการรวมไฟล์ไปยังเทป (archive to magnetic tape) และใช้ในการแตกไฟล์ที่รวมไว้ เรามักเรียกไฟล์ archive ว่า tarball เราสามารถผนวกคำสั่งบีบอัดหรือขยายไฟล์ไปกับคำสั่ง tar ได้เลย ตัวอย่างการใช้งาน เช่น

  • tar xvf mydir.tar เป็นการแตกไฟล์ที่รวมไว้ (mydir.tar) ลงในไดเร็คทอรี่ชื่อ mydir
  • tar zcvf mydir.tar.gz mydir เป็นการรวมไฟล์และบีบอัดด้วย gzip
  • tar jcvf mydir.tar.bz2 mydir เป็นการรวมไฟล์และบีบอัดด้วย bzip2
  • tar Jcvf mydir.tar.xz mydir เป็นการรวมไฟล์และบีบอัดด้วย xz
  • tar xvf mydir.tar.gz เป็นการขยายและแตกไฟล์ที่รวมไว้ (mydir.tar.gz) ลงในไดเร็คทอรี่ชื่อ mydir

การดำเนินการกับไฟล์ที่ถูกบีบอัด

     ในการดำเนินการกับไฟล์ที่ถูกบีบอัดด้วยคำสั่ง gzip ถ้าเราไม่ขยายไฟล์จากการบีบอัดออกมาก่อนเราจะไม่สามารถใช้คำสั่งมาตรฐานที่ใช้ในการดำเนินการกับไฟล์ทั่วๆไปได้ แต่คำสั่งมาตรฐานหลายๆคำสั่งก็มีคำสั่งที่เป็นเวอร์ชั่นที่สามารถใช้ดำเนินการกับไฟล์ที่ถูกบีบอัดได้โดยที่ไม่ต้องขยายไฟล์ก่อนดำเนินการซึ่งจะมีตัว z นำหน้าคำสั่ง เช่น  zcat, zless, zdiff, and zgrep ตัวอย่างการใช้งาน เช่น 

  • zcat filename.txt.gz เป็นการแสดงข้อความในไฟล์ compredded-file.txt.gz โดยใช้คำสั่ง zcat (ซึ่งถ้าเป็นไฟล์ธรรมดาที่ไม่ได้บีบอัดเราจะใช้คำสั่ง cat)
  • zless filename.gz หรือ zmore filename.gz เป็นการแสดงข้อความในไฟล์ทีละหน้า filename.gz โดยใช้คำสั่ง zless หรือ zmore (ซึ่งถ้าเป็นไฟล์ธรรมดาที่ไม่ได้บีบอัดเราจะใช้คำสั่ง less หรือ more)
  • zgrep -i less filename.txt.gz เป็นการค้นหาในไฟล์ที่ถูกบีบอัด
  • zdiff filename1.txt.gz filename2.txt.gz เป็นการเปรียบเทียบไฟล์ที่ถูกบีบอัด 2  ไฟล์

     คำสั่งสำหรับดำเนินการกับไฟล์ที่ถูกบีบอัดเหล่านี้สามารถใช้งานกับไฟล์ธรรมดาๆได้ด้วย ในกรณีที่เราเอาคำสั่งเหล่านี้ไปใช้กับไฟล์ธรรมดาที่ไม่ได้ถูกบีบอัด คำสั่งจะข้ามขั้นตอนการขยายไฟล์ก่อนดำเนินการไป นอกจากคำสั่งที่นำหน้าด้วย z สำหรับใช้กับไฟล์ที่ถูกบีบอัดด้วยคำสั่ง gzip แล้ว เรายังมีคำสั่งที่นำหน้าด้วย bz เช่น bzcat และ bzless เพื่อใช้กับไฟล์ที่ถูกบีบอัดด้วยคำสั่ง bzip2 และยังมีคำสั่งที่นำหน้าด้วย xz เช่น xzcat และ xzless เพื่อใช้กับไฟล์ที่ถูกบีบอัดด้วยคำสั่ง xz.