Sử dụng lệnh tar để nén và giải nén trong Linux

Tar là chữ viết tắt của chữ Tape Archive, đây là một trong những lệnh phổ biến trong Linux/Unix. Lệnh này được dùng để nén một hoặc nhiều file/folder lại với nhau thành một file duy nhất để lưu trữ hoặc để tiết kiệm không gian đĩa (bạn có thể coi nó giống file rar của Windows vậy).

Những file nén này được gọi là tarball hay tarfile và chúng thường có phần mở rộng là .tar, .tar.gz, .tar.bz2 (trong Windows, bạn hoàn toàn có thể dùng WinRAR, 7-Zip hoặc nếu bạn thích dùng command line thì có thể dùng TarTool để giải nén những file này). Trong bài viết này, chúng ta sẽ bàn về những cơ bản trong việc sử dụng lệnh tar để nén và giải nén file trong Linux.

#1 Nén một file/folder lại với nhau

Để nén 1 file/folder lại thành một file nén duy nhất, ta dùng lệnh như sau

tar -czvf tên-của-file-nén.tar.gz /đường/dẫn/tới/file-hoặc-folder

nếu muốn tạo file nén gzip (sẽ tạo ra file có đuôi là .tar.gz). Hoặc

tar -cjvf tên-của-file-nén.tar.bz2 /đường/dẫn/tới/file-hoặc-folder

nếu muốn tạo file nén bzip2 (sẽ tạo ra file có đuôi là .tar.bz2), bzip2 sẽ nén lâu hơn chút.

Các tham số lần lượt như sau:

  • -c: viết tắt của chữ Create nghĩa là tạo ra file nén.
  • -z: đại diện của gzip, nghĩa là nén file bằng gzip, bạn có thể dùng tham số tương đương là --gzip.
  • -j: đại diện của bzip2, nghĩa là nén file bằng bzip2, bạn có thể dùng tham số tương đương là --bzip2.
  • -v: viết tắt của chữ Verbose, dùng để hiển thị tiến trình nén file ra màn hình, nến bạn không muốn xem thì có thể bỏ tham số này đi.
  • -f: viết tắt của chữ file, dùng để đặt tên cho file nén.

Một vài ví dụ sau đây sẽ cho bạn thấy cách sử dụng các lệnh ở trên, giả sử bạn muốn nén 1 file tên là hello.txt và một folder tên là My Images thì bạn gõ như sau (ở đây tôi dùng gzip để nén):

tar –czvf hello.tar.gz hello.txt
Nén 1 file bằng lệnh tar trong Linux

Lệnh trên sẽ nén file hello.txt và tạo ra một file nén tên hello.tar.gz

tar –czvf myimages.tar.gz "My Images"
Nén 1 folder bằng lệnh tar trong Linux

Cũng tương tự như trên, nó sẽ nén cả thư mục My Images và tạo ra file nén tên là myimages.tar.gz. Lưu ý là nếu tên folder của bạn có khoảng trắng thì bạn nên bỏ nó vào trong dấu nháy đơn (') hoặc nháy kép (")

#2 Nén nhiều file/folder lại với nhau

Các lệnh trên lấy ví dụ về cách nén 1 file/folder, vậy nếu bạn muốn nén nhiều file/folder thì gõ thế nào? tương tự như vậy, để nén nhiều file hoặc folder, chỉ việc gõ tất cả tên các file/folder mà bạn muốn nén thay vì chỉ gõ tên 1 file/folder duy nhất

tar -czvf tên-của-file-nén.tar.gz /đường/dẫn/thư-mục-1 /đường/dẫn/thư-mục-2 /tên/file-1.txt /tên/file-2.txt

hoặc

tar -cjvf tên-của-file-nén.tar.gz /đường/dẫn/thư-mục-1 /đường/dẫn/thư-mục-2 /tên/file-1.txt /tên/file-2.txt

#3 Giải nén file

Khi bạn đã có 1 file nén, bạn có thể dùng lệnh tar để giải nén nó ra

nếu là file gzip
tar -xvf tên-của-file-nén.tar.gz

nếu là file bzip2
tar -xvf tên-của-file-nén.tar.bz2

Các tham số đều giống như trên, chỉ khác là bạn sẽ dùng tham số -x (extract) thay cho tham số -c để giải nén file. Ngoài ra bạn có thể dùng tham số -C (chữ c viết hoa) để chỉ định cần giải nén tới thư mục nào

tar -xvf tên-của-file-nén.tar.gz -C /thư/mục/sẽ/giải/nén/file

#4 Xem nội dung trong file nén mà không cần giải nén

Giả sử như bạn muốn xem các file được nén trong file nén thì làm thế nào? Tất nhiên là không cần phải giải nén ra để xem rồi, vì như thế sẽ rất phiền phức. Để xem những file được nén đó bạn dùng lệnh sau

tar -tvf tên-file-nén.tar.gz
hoặc
tar --list -vf tên-file-nén.tar.gz
nếu như là file gzip

tar -tvf tên-của-file-nén.tar.bz2
hoặc
tar --list -vf tên-của-file-nén.tar.bz2
nếu như là file bzip2

Tham số -t trong lệnh trên dùng để liệt kê các file trong file nén, và nó có tham số tương đương là --list

Leave a Comment

No comments:

Powered by Blogger.