Cách giải nén tệp tar.gz trên Ubuntu (Terminal & GUI) + Sửa lỗi thường gặp

.## 1. tar.gz là gì? Những điều cơ bản

Nếu bạn đang cố gắng giải nén một tệp tar.gz trên Ubuntu, việc đầu tiên là hiểu tar.gz thực sự là gì. Khi bạn nắm rõ điều này, các lệnh sẽ trở nên dễ hiểu hơn rất nhiều. Phần này chỉ giải thích những gì người mới cần, một cách đơn giản.

目次

1.1 tar.gz kết hợp “đóng gói” và “nén”

tar.gz là, nói ngắn gọn, một tệp đóng gói nhiều tệp/thư mục lại thành một và sau đó nén gói đó.

  • tar : một định dạng lưu trữ dùng để “đóng gói” nhiều tệp/thư mục thành một (một archive)
  • gz : một phần mở rộng tệp cho biết nó đã được “nén” bằng gzip

Vì vậy, một tệp tar.gz về cơ bản là sự kết hợp của hai bước:

  1. Đóng gói các tệp/thư mục lại với nhau (tar)
  2. Nén gói đã đóng gói (gzip)

Đó là lý do tại Ubuntu, “giải nén” một tar.gz được mô tả chính xác hơn là “đầu tiên giải nén, sau đó giải đóng gói archive.”

1.2 Tại sao tar.gz lại phổ biến trên Ubuntu

Trong môi trường Linux (bao gồm Ubuntu), các tệp tar.gz cực kỳ phổ biến. Lý do rất đơn giản: chúng phù hợp tuyệt vời cho các trường hợp sử dụng này.

  • Phân phối phần mềm : dễ dàng chuyển giao toàn bộ mã nguồn và/hoặc các tệp nhị phân
  • Sao lưu : bạn có thể đóng gói một thư mục toàn bộ thành một tệp
  • Lưu trữ nhật ký và tệp cấu hình : dễ dàng tổ chức nhiều tệp nhỏ

Đặc biệt, các công cụ bạn tải xuống từ web và các gói được phân phối trên GitHub thường được cung cấp dưới dạng archive tar.gz.

1.3 Sự khác nhau so với các phần mở rộng tương tự (.tgz / .tar / .gz)

Có một vài phần mở rộng trông giống nhau thường gây nhầm lẫn cho người mới, vì vậy hãy làm rõ chúng.

• .tgz là phiên bản ngắn hơn của .tar.gz

.tgz thực chất giống như .tar.gz.
Đó là một cách viết tắt cũ vẫn được sử dụng đôi khi.

• .tar chỉ “đóng gói” (không nén)

.tar chỉ là một archive (đóng gói), không có nén.
Nó thường có kích thước tệp lớn.

• .gz thường có nghĩa là “một tệp đơn được nén”

.gz cơ bản là một định dạng nén.
Trong nhiều trường hợp, nó chỉ là một tệp đơn đã được gzip-nén (ví dụ, log.txt.gz), và có thể không bao gồm tar.

Đối với bài viết này, chỉ cần nhớ: tar.gz có nghĩa là “archive (tar) + compression (gzip)” kết hợp với nhau.

1.4 Những điều cần biết trước khi giải nén (để tránh lỗi thường gặp)

Người mới thường gặp khó khăn ở hai điểm: “Các tệp sẽ được giải nén vào đâu?” và “Nội dung có an toàn không?” Hãy ghi nhớ những ý tưởng này để luôn an toàn và có tổ chức.

  • Mặc định, việc giải nén sẽ diễn ra trong “thư mục hiện tại” của bạn
  • An toàn hơn khi xem trước nội dung trước khi giải nén
  • Nếu bạn chỉ định thư mục giải nén, bạn có thể giải gói gọn gàng vào Desktop hoặc bất kỳ thư mục nào bạn muốn

Trong chương tiếp theo, chúng tôi sẽ hướng dẫn các lệnh thực tế và chỉ cho bạn cách thực hiện từng bước.

2. Cách giải nén tệp tar.gz trên Ubuntu (Lệnh Terminal)

Có hai cách chính để giải nén tệp tar.gz trên Ubuntu:

  • Giải nén qua Terminal (lệnh) ← phổ biến và đáng tin cậy nhất
  • Giải nén qua GUI (click chuột phải) ← dễ dàng, nhưng ít linh hoạt hơn

Bài viết này tập trung vào việc giải nén bằng lệnh, vì nó dễ tái tạo và khắc phục sự cố — ngay cả với người mới.

2.1 Lệnh giải nén cơ bản nhất (hãy ghi nhớ điều này trước)

Đây là lệnh chuẩn để giải nén tệp tar.gz trên Ubuntu:

tar -xzvf filename.tar.gz

Ví dụ, nếu tệp bạn tải về là sample.tar.gz, hãy dùng:

tar -xzvf sample.tar.gz

Lệnh này sẽ giải nén nội dung vào thư mục bạn đang ở (thư mục hiện tại).

2.2 Giải thích tar -xzvf cho người mới

Ban đầu có thể trông đáng sợ, nhưng một khi bạn biết mỗi phần nghĩa là gì, nó sẽ rất đơn giản.

  • tar : lệnh dùng để làm việc với các archive
  • -x : giải nén
  • -z : xử lý nén gzip (.gz)
  • -v : hiển thị tên tệp trong quá trình giải nén (verbose)
  • -f : chỉ định tên tệp (file)

Nói cách khác:

.> “Giải nén một tệp tar đã nén gzip từ tệp được chỉ định, đồng thời in chi tiết.”

Là người mới bắt đầu, bạn hoàn toàn có thể ghi nhớ tar -xzvf như một bộ lệnh.

2.3 Trước khi giải nén: di chuyển tới thư mục chứa tệp

Nếu bạn gặp lỗi “file not found”, nguyên nhân phổ biến nhất là bạn đang chạy lệnh ở thư mục sai.

Ví dụ, các tệp tải xuống qua trình duyệt thường được lưu trong thư mục Downloads.

Trong Terminal, bạn có thể di chuyển tới đó như sau:

cd ~/Downloads

Sau đó kiểm tra xem tệp có thực sự ở đó không:

ls

Khi bạn thấy sample.tar.gz, chạy lệnh giải nén:

tar -xzvf sample.tar.gz

2.4 Nếu tên tệp chứa dấu cách

Nếu tên tệp có dấu cách, lệnh sẽ bị ngắt giữa chừng và gây lỗi.

Ví dụ:

  • my app.tar.gz (có dấu cách)

Trong trường hợp này, cách sửa đơn giản nhất là đặt tên tệp trong dấu ngoặc kép:

tar -xzvf "my app.tar.gz"

Hoặc bạn có thể thoát dấu cách bằng \:

tar -xzvf my\ app.tar.gz

Đối với người mới, cách dùng dấu ngoặc kép thường dễ đọc hơn.

2.5 Điều gì xảy ra sau khi giải nén? Hình dung cấu trúc thư mục

Trong nhiều trường hợp, việc giải nén một tar.gz sẽ cho ra kết quả như sau:

  • Giải nén sample.tar.gz → một thư mục sample/ được tạo ra, và mọi thứ được giải nén bên trong

Tuy nhiên, trong một số trường hợp hiếm, tar.gz có thể giải nén số lượng lớn tệp trực tiếp vào thư mục hiện tại mà không tạo thư mục cha.

Đó là lý do tại sao các mẹo trong phần tiếp theo—xem trước nội dungchọn thư mục giải nén—đáng để học nhằm đảm bảo an toàn và tổ chức tốt.

3. Các mẫu giải nén thường gặp (Các lệnh thực tế bạn sẽ dùng thường xuyên)

Giải nén một tệp tar.gz không chỉ là “giải nén mọi thứ”. Trong thực tế, bạn thường sẽ chọn các cách tiếp cận khác nhau tùy theo tình huống. Dưới đây là các mẫu được sử dụng nhiều nhất.

3.1 Giải nén vào thư mục hiện tại (mặc định cơ bản)

Đây là cách chuẩn nhất.

tar -xzvf sample.tar.gz

Nếu bạn không chắc tệp đã được giải nén vào đâu, chạy ls ở cùng vị trí bạn thực thi lệnh.

ls

3.2 Giải nén vào một thư mục cụ thể (Desktop hoặc thư mục công việc)

Nếu bạn muốn kiểm soát nơi các tệp được giải nén, sử dụng tùy chọn -C.

Ví dụ, để giải nén vào Desktop của bạn:

tar -xzvf sample.tar.gz -C ~/Desktop

Nếu bạn muốn giải nén vào một thư mục work riêng, làm như sau:

mkdir -p ~/work
tar -xzvf sample.tar.gz -C ~/work

Điều quan trọng là thư mục đích phải tồn tại trước.
Nếu chưa có, hãy tạo nó trước bằng mkdir -p, rồi mới giải nén.

3.3 Xem trước nội dung trước khi giải nén (đề xuất để an toàn)

“Tôi sợ nó sẽ làm rải rác các tệp khắp nơi nếu tôi giải nén.”
“Tôi không chắc nó có chứa gì lạ hoặc giải nén vào các đường dẫn kỳ lạ.”

Trong những trường hợp này, bạn có thể liệt kê nội dung mà không giải nén gì cả.

tar -tf sample.tar.gz

Nếu bạn thấy một danh sách như sau, thường là ổn:

  • sample/
  • sample/readme.txt
  • sample/bin/...

Ngược lại, nếu nó có vẻ sẽ đổ rất nhiều tệp trực tiếp vào thư mục hiện tại, an toàn hơn là giải nén vào một thư mục riêng bằng tùy chọn -C.

3.4 Nếu bạn không chắc định dạng thực sự là gì, kiểm tra bằng lệnh file

Ngay cả khi phần mở rộng là .tar.gz, nội dung thực tế có thể là một định dạng khác (ví dụ, do tải xuống không thành công).

Trong trường hợp đó, dùng file để xác định nó:

file sample.tar.gz

Ví dụ đầu ra (khi hợp lệ):

  • gzip compressed data ...

Kiểm tra nhanh này có thể ngăn ngừa rất nhiều lỗi không cần thiết.

4. Giải nén qua giao diện đồ họa (Trình quản lý tệp mặc định của Ubuntu)

.Nếu bạn chưa thoải mái với Terminal, bạn cũng có thể giải nén các tệp tar.gz bằng giao diện GUI của Ubuntu (cách làm dựa trên chuột).
Đặc biệt khi bạn “chỉ muốn giải nén nhanh chóng,” GUI có thể cảm thấy trực quan hơn và ít gây áp lực.

4.1 Các bước: giải nén bằng cách nhấp chuột phải (thân thiện với người mới bắt đầu)

Trình quản lý tệp mặc định của Ubuntu (Files / Nautilus) có thể xử lý các kho lưu trữ tar.gz.

  1. Mở trình quản lý tệp
  2. Tìm tệp *.tar.gz của bạn (thường nằm trong Downloads )
  3. Nhấp chuột phải vào tệp
  4. Chọn một trong các tùy chọn sau từ menu wp:list /wp:list

    • Extract Here
    • Extract To…

Trong hầu hết các trường hợp, Extract Here là đủ tốt để bắt đầu.

4.2 “Extract Here” vs “Extract To…”

Khái niệm này giống như việc giải nén bằng Terminal:

  • Extract Here → giải nén vào thư mục bạn đang xem
  • Extract To… → cho phép bạn chọn vị trí như Desktop hoặc một thư mục công việc

Nếu kho lưu trữ chứa nhiều tệp, bạn nên tạo một thư mục công việc riêng và giải nén vào đó, để Desktop (hoặc Downloads) của bạn không bị lộn xộn.

4.3 Ưu và nhược điểm của việc giải nén bằng GUI

GUI rất tiện lợi, nhưng nó cũng có những điểm mạnh và hạn chế.

Ưu điểm

  • Không cần ghi nhớ lệnh
  • Ít có khả năng gõ sai (do đó ít lỗi nhập)
  • Thân thiện với người mới bắt đầu và nhanh chóng sử dụng

Nhược điểm

  • Khó kiểm soát chi tiết quá trình giải nén (ví dụ: chỉ giải nén các tệp cụ thể, kiểm tra log)
  • Thông tin lỗi ít hữu ích (đầu ra Terminal thường rõ ràng hơn cho việc khắc phục)

Nếu bạn thường xuyên dùng Linux hoặc làm công việc phát triển, cuối cùng bạn nên học cách giải nén bằng Terminal — nó cho phép bạn kiểm soát tốt hơn khi cần.

5. Nâng cao: Chỉ giải nén các tệp cụ thể (Lấy những gì bạn cần)

Thông thường, bạn sẽ giải nén toàn bộ nội dung của một kho lưu trữ tar.gz. Tuy nhiên, trong một số trường hợp, bạn có thể muốn chỉ lấy ra các tệp cụ thể.

  • Bạn chỉ cần một tệp duy nhất từ một kho lưu trữ lớn
  • Bạn muốn kiểm tra tệp cấu hình hoặc README trước
  • Bạn không muốn tốn thời gian giải nén toàn bộ

Đây là lúc “chỉ giải nén các tệp cụ thể” trở nên hữu ích.

5.1 Đầu tiên, xem trước nội dung (liệt kê tệp mà không giải nén)

Nếu bạn không biết chính xác đường dẫn, sẽ khó giải nén một tệp cụ thể, vì vậy hãy bắt đầu bằng cách liệt kê nội dung.

tar -tf sample.tar.gz

Nhìn vào các đường dẫn đầu ra (tên tệp và cấu trúc thư mục) và xác định tệp bạn muốn giải nén.

Ví dụ, bạn có thể thấy:

  • sample/README.md
  • sample/config/default.conf
  • sample/bin/tool

5.2 Cú pháp cơ bản: chỉ giải nén một tệp cụ thể

Khi bạn đã biết chính xác đường dẫn tệp, bạn có thể giải nén nó như sau:

tar -xzvf sample.tar.gz sample/README.md

Trong ví dụ này, chỉ sample/README.md sẽ được giải nén.

Mẹo: An toàn nhất là sao chép đường dẫn chính xác như khi tar -tf hiển thị.

5.3 Bạn cũng có thể giải nén toàn bộ thư mục trong kho lưu trữ

Đôi khi bạn không muốn chỉ một tệp — bạn muốn mọi thứ trong một thư mục cụ thể.

Ví dụ: giải nén chỉ sample/config/ và các nội dung của nó

tar -xzvf sample.tar.gz sample/config/

Lệnh này sẽ giải nén chỉ các tệp bên trong thư mục config.

5.4 Tại sao điều này quan trọng: giải nén các tệp không cần thiết có thể gây vấn đề

Một lỗi phổ biến của người mới bắt đầu là giải nén mọi thứ mà không suy nghĩ, điều này có thể dẫn đến các vấn đề như:

  • Thư mục công việc của bạn trở nên lộn xộn
  • Bạn mất dấu các tệp đã giải nén
  • Các tệp có tên tương tự bị ghi đè lên nhau

Khi bạn đã quen với quy trình “xem trước trước, rồi chỉ giải nén những gì cần,” việc xử lý tệp trên Ubuntu sẽ trở nên dễ dàng và an toàn hơn nhiều.

6. Lỗi thường gặp và cách khắc phục (Danh sách kiểm tra khắc phục)

Giải nén các tệp tar.gz thường rất đơn giản, nhưng trong thực tế bạn vẫn có thể gặp phải lỗi.
Phần này đề cập đến những vấn đề phổ biến nhất mà người mới dùng Ubuntu gặp phải, bằng cách trình bày rõ ràng “Nguyên nhân → Giải pháp”.

6.1 tar: ...: Cannot open: No such file or directory (Không tìm thấy tệp)

Nguyên nhân phổ biến

  • Bạn đang chạy lệnh trong thư mục sai
  • Bạn đã gõ sai tên tệp (bao gồm sự khác biệt giữa chữ hoa/chữ thường)
  • Bạn không bao gồm phần mở rộng đầy đủ

Cách khắc phục

Đầu tiên, kiểm tra vị trí hiện tại của bạn:

pwd

Sau đó kiểm tra xem tệp có tồn tại trong thư mục đó không:

ls

Nếu nó ở trong Downloads, di chuyển đến đó:

cd ~/Downloads
ls

Cuối cùng, chạy lại lệnh với tên tệp chính xác:

tar -xzvf sample.tar.gz

6.2 tar: This does not look like a tar archive (Không phải là kho lưu trữ tar)

Nguyên nhân phổ biến

  • Phần mở rộng tệp là .tar.gz , nhưng nội dung thực tế là định dạng khác
  • Bản tải xuống bị hỏng (bạn đã lưu một trang lỗi HTML thay vì)
  • Nó thực sự là tệp zip, nhưng được đổi tên thành tar.gz

Cách khắc phục

Kiểm tra loại tệp bằng lệnh này:

file sample.tar.gz

Nếu bạn thấy cái gì đó như HTML document, bản tải xuống có lẽ đã thất bại.
Trong trường hợp đó, tải lại tệp và thử lại.

6.3 gzip: stdin: not in gzip format (Không phải định dạng gzip)

Nguyên nhân phổ biến

  • Nó không thực sự là .tar.gz (nó là .tar )
  • Phần .gz không thực sự là định dạng gzip
  • Tệp bị hỏng

Cách khắc phục

Kiểm tra lại phần mở rộng. Nếu đó là tệp .tar, hãy loại bỏ -z và chạy:

tar -xvf sample.tar

Ngoài ra, để xác nhận xem tệp có bị hỏng không, kiểm tra này rất hữu ích:

file sample.tar.gz

6.4 Permission denied (Không có quyền ghi)

Nguyên nhân phổ biến

  • Bạn đang giải nén vào thư mục hệ thống (ví dụ: /usr/local hoặc / )
  • Bạn không có quyền ghi trong thư mục đích
  • Vấn đề quyền với việc gắn ổ đĩa ngoài

Cách khắc phục an toàn cho người mới bắt đầu

Cách tiếp cận an toàn nhất là làm việc dưới thư mục home của bạn:

mkdir -p ~/work
tar -xzvf sample.tar.gz -C ~/work

Nếu bạn thực sự phải giải nén vào vị trí chỉ dành cho admin, hãy sử dụng sudo:

sudo tar -xzvf sample.tar.gz -C /usr/local

Tuy nhiên, người mới bắt đầu nên tránh lạm dụng sudo.
Quy trình làm việc an toàn hơn là: giải nén vào thư mục home trước → chỉ di chuyển những gì bạn cần.

6.5 Giải nén thành công, nhưng “Tôi không biết tệp đã đi đâu”

Nguyên nhân phổ biến

  • Bạn không biết thư mục hiện tại khi giải nén
  • Quá nhiều tệp được giải nén và bạn mất dấu

Cách khắc phục

Đầu tiên, xác nhận nơi bạn đã giải nén:

pwd

Sau đó tìm các tệp/thư mục được tạo gần đây:

ls -lt

Nếu bạn muốn tránh tình huống này hoàn toàn, hãy chỉ định thư mục giải nén từ đầu:

mkdir -p ~/work/extract
tar -xzvf sample.tar.gz -C ~/work/extract

6.6 Tên tệp bị rối sau khi giải nén (mojibake)

Nếu một kho lưu trữ tar.gz chứa tên tệp tiếng Nhật, chúng có thể bị rối tùy thuộc vào môi trường của bạn.
Điều này có thể xảy ra do sự khác biệt trong mã hóa ký tự được sử dụng khi tạo kho lưu trữ.

Cách tiếp cận

  • Kiểm tra xem locale Ubuntu của bạn có được đặt thành UTF-8 không
  • Nếu vẫn không hoạt động, hãy giải nén trên môi trường khác và sau đó sao chép các tệp

Lệnh ví dụ để kiểm tra locale:

locale

Trong hầu hết các trường hợp, nếu bạn thấy cái gì đó như LANG=ja_JP.UTF-8, bạn ít có khả năng gặp vấn đề mã hóa.

7. Cách Tạo Tệp tar.gz (Phần thưởng: Hữu ích cho Việc Đóng Gói Cũng Vậy)

Lúc này, bạn nên quen thuộc với việc giải nén các tệp tar.gz. Nhưng khi bạn sử dụng Ubuntu thường xuyên, bạn cũng sẽ gặp tình huống muốn tạo một kho lưu trữ tar.gz, chẳng hạn như:

  • Gửi toàn bộ thư mục dưới dạng một tệp duy nhất
  • Tạo bản sao lưu
  • Tổ chức và lưu trữ nhiều tệp cùng nhau

Vì vậy, trong phần này, chúng ta sẽ bao quát các cơ bản về việc tạo kho lưu trữ tar.gz.

7.1 Lệnh cơ bản: nén một thư mục thành tar.gz

Ví dụ, nếu bạn muốn nén một thư mục có tên myfolder, chạy:

tar -czvf myfolder.tar.gz myfolder/

Đây là ý nghĩa của các tùy chọn:

  • -c : tạo
  • -z : sử dụng nén gzip
  • -v : hiển thị chi tiết
  • -f : chỉ định tên tệp đầu ra

7.2 Nén nhiều tệp cùng nhau

Bạn cũng có thể gộp nhiều tệp và thư mục thành một kho lưu trữ duy nhất.

tar -czvf backup.tar.gz file1.txt file2.txt config/

Điều này vẫn hoạt động ngay cả khi bạn trộn lẫn tệp và thư mục trong cùng một lệnh.

7.3 Nếu bạn muốn loại trừ tệp trước khi nén (chỉ khái niệm)

Trong công việc thực tế, bạn có thể muốn tránh bao gồm một số tệp nhất định trong kho lưu trữ, chẳng hạn như:

  • tệp cache
  • tệp log lớn
  • tệp tạm thời

Trong những trường hợp đó, bạn có thể sử dụng tùy chọn --exclude. Nhưng đối với người mới bắt đầu, thường chỉ cần:

  1. Thu thập chỉ những gì bạn muốn lưu trữ vào một thư mục làm việc
  2. Nén thư mục đó thành một kho lưu trữ tar.gz

Cách tiếp cận này đơn giản và hoạt động tốt trong hầu hết các trường hợp.

8. Tóm tắt: Cách nhanh nhất để giải nén tar.gz trên Ubuntu

Nếu bạn muốn cách ngắn gọn nhất để giải nén tệp tar.gz trên Ubuntu, một lệnh này là đủ trong hầu hết các trường hợp:

tar -xzvf filename.tar.gz

Và nếu bạn muốn tránh sai lầm trong công việc thực tế, hãy nhớ ba mẹo sau:

  • Xem trước nội dung trước : tar -tf filename.tar.gz
  • Chọn thư mục giải nén : tar -xzvf filename.tar.gz -C destination
  • Kiểm tra loại tệp thực tế : file filename.tar.gz

Các kho lưu trữ tar.gz xuất hiện khắp nơi trên Ubuntu, vì vậy một khi bạn nắm vững những kiến thức cơ bản này, công việc hàng ngày sẽ trở nên suôn sẻ hơn nhiều.

Câu hỏi thường gặp (FAQ)

Q1. Cách dễ nhất để giải nén tệp tar.gz trên Ubuntu là gì?

A. Phương pháp đáng tin cậy nhất là chạy lệnh này trong Terminal:

tar -xzvf filename.tar.gz

Q2. Tôi có thể chọn thư mục đích khi giải nén không?

A. Có. Sử dụng tùy chọn -C để chỉ định thư mục đích giải nén:

tar -xzvf sample.tar.gz -C ~/Desktop

Q3. Tôi có thể xem trước nội dung mà không giải nén không?

A. Có. Bạn có thể liệt kê nội dung bằng lệnh này:

tar -tf sample.tar.gz

Q4. Tôi có thể giải nén tệp tar.gz bằng giao diện đồ họa (nhấp chuột phải) không?

A. Có. Trong trình quản lý tệp của Ubuntu, nhấp chuột phải vào tệp tar.gz và chọn Extract Here để giải nén.

Q5. Tôi nhận được lỗi not a tar archive và không thể giải nén

A. Tệp có thể bị hỏng, hoặc phần mở rộng không khớp với loại tệp thực tế. Kiểm tra bằng:

file sample.tar.gz

Q6. Tôi cũng muốn biết cách tạo tệp tar.gz

A. Để nén một thư mục thành định dạng tar.gz, sử dụng:

tar -czvf archive.tar.gz foldername/