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

[code type="Linux"]tar -czvf tên-của-file-nén.tar.gz /đường/dẫn/tới/file-hoặc-folder[/code]

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

[code type="Linux"]tar -cjvf tên-của-file-nén.tar.bz2 /đường/dẫn/tới/file-hoặc-folder[/code]

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):

[code type="Linux"]tar –czvf hello.tar.gz hello.txt[/code]
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

[code type="Linux"]tar –czvf myimages.tar.gz "My Images"[/code]
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

[code type="Linux"]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[/code]

#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

[code type="Linux"]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[/code]

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

[code type="Linux"]tar -xvf tên-của-file-nén.tar.gz -C /thư/mục/sẽ/giải/nén/file[/code]

#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

[code type="Linux"]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[/code]

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

No comments:

Powered by Blogger.