NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
03/05/2024
Lượt xem

Cách cài đặt tạo file Zip và Unzip trên Linux để nén và giải nén file

03/05/2024
13 phút đọc
Lượt xem

Đánh giá

5/5 - (196 bình chọn)

Trong số các định dạng nén phổ biến, ZIP nổi bật với khả năng tương thích cao trên nhiều hệ điều hành, đặc biệt là Windows và Linux. Với sự hỗ trợ của Zip và Unzip, bạn có thể dễ dàng nén và giải nén đa dạng file, từ văn bản, hình ảnh đến video, phần mềm,… Cùng Vietnix khám phá cách cài đặt Zip và Unzip trên Linux để nén và giải nén file thông qua Terminal.

Cách cài đặt và tạo file Zip trên Linux

Cài đặt file Zip cho các bản phân phối của Linux

Linux và các hệ điều hành dựa trên Unix khác như macOS đều có hỗ trợ những công cụ để người dùng tạo và giải nén file Zip, gọi là zipunzip. Bên cạnh đó còn có nhiều tiện ích liên quan khác như zipcloak, zipdetails, zipslit hay zipinfo.

Mọi tiện ích này đều có trong Ubuntu 19.04, 18.10 và 18.04, Manjora 18.04 cũng tương tự. Mặt khác, FedoraCentOS lại mới chỉ hỗ trợ zipunzip.

  • Để cài đặt các phần tử còn thiếu trên Fedora 29, hãy sử dụng lệnh sau:
sudo dnf install perl-IO-Compress
Cài đặt file Zip trên Fedora 29
Cài đặt file Zip trên Fedora 29
  • Tương tự đối với CentOS 7:
sudo yum install perl-IO-Compress

Đối với những bản phân phối Linux khác, bạn có thể sử dụng công cụ quản lý package để cài đặt zipunzip trên Linux cho bản phân phối đó.

Tạo file Zip trên Linux

Bây giờ để tạo file Zip, bạn có thể dùng lệnh zip rồi chỉ định tên file lưu trữ và các file thành phần.

Giả sử bạn cần tạo một file tên source_code.zip chứa các file source code C và file header trong thư mục hiện tại. Khi đó bạn có thể sử dụng câu lệnh như sau:

zip source_code *.c *.h
Nén các file chỉ định
Nén các file chỉ định

Các file được thêm sẽ hiển thị ở trên Terminal, cung cấp các thông tin liên quan đến tên file và tiến độ thực hiện lưu trữ.

  • Để kiểm tra file Zip mới, bạn có thể thấy phần mở rộng .zip đã được tự động thêm:
ls -l source_code.zip
kiem tra file zip moi
Kiểm tra file Zip mới
  • Nếu không muốn xem output khi tạo file từ lệnh zip thì bạn cũng có thể thêm option -q (quiet) như sau:
zip -q source_code *.c *.h

Thêm thư mục vào file ZIP

Để thêm thư mục con vào file Zip, bạn có thể thêm option -r (recursive) rồi kèm theo tên của thư mục con vào câu lệnh. Ví dụ như bạn cần tạo một file ZIP như ở trên rồi thêm vào folder con:

zip -r -q source_code archive/ *.c *.h
Thêm thư mục vào file Zip
Thêm thư mục vào file Zip
Kết quả sau khi thêm file mới
Kết quả sau khi thêm file mới

Việc lưu trữ tất cả file trong một thư mục khi zip sẽ giúp việc giải nén được gọn gàng hơn. Trong lệnh dưới đây, ta sẽ nén thư mục work và mọi thư mục con trong đó (lưu ý rằng lệnh này được gọi từ thư mục cha của work):

zip -r -q source_code work/

Thiết lập mức độ nén file

Lệnh zip cho phép người dùng chỉ định mức độ nén file, ở mức từ 0 đến 9, trong đó 0 nghĩa là không nén. Mức độ càng cao thì thời gian tạo file ZIP càng lâu. Đối với các file ZIP có kích thước nhỏ thì thời gian chênh lệch không quá đáng kể, mức nén thường được dùng là level 0 cho những file này.

  • Để chỉ định mức độ nén file, truyền tham số vào lệnh trong command line, viết sau dấu “-” như sau:
zip -0 -r -q source_code work/
Nén file theo mức độ đã chỉ định
Nén file theo mức độ đã chỉ định
  • Mức độ nén mặc định là 6 nên nếu dùng level 6 thì bạn không cần phải chỉ định rõ:
zip -r -q source_code work/
  • Mức độ nén tối đa là 9:
zip -9 -r -q source_code work/

Trong ví dụ trên, nén file ở mức độ 0 và 6 chênh lệch nhau 400K, trong khi đó chênh lệch giữa mức 6 và 9 chỉ là 4K. Nghe thì có vẻ không đáng kể, nhưng đối với những file có kích thước lớn thì sẽ ảnh hưởng rất nhiều đến thời gian và kích thước file zip tạo được.

Thêm mật khẩu cho file ZIP

Việc thêm mật khẩu cho ZIP trên Linux rất đơn giản, bạn chỉ cần thêm option -e (encrypt) rồi nhập mật khẩu, sau đó xác thực lại lần nữa để hoàn tất:

zip -e -r -9 zipfile.zip ~/Desktop/
Thêm mật khẩu cho file Zip
Thêm mật khẩu cho file Zip

Cách Unzip trên Linux

Để giải nén file từ một file ZIP, bạn dùng lệnh unzip trên Linux như sau:

unzip zipfile.zip
Giải nén file
Giải nén file

Trong đó lưu ý rằng tên file phải có phần mở rộng .zip“.

Kết quả khi giải nén:

File ZIP không chứa thông tin về quyền sở hữu, tất cả các file được giải nén đều xem chủ sở hữu là người dùng đang giải nén file. Tương tự như zip, lệnh unzip cũng có option -q (quiet) để ẩn danh sách file khi đang giải nén:

unzip -q source_code.zip

Giải nén file vào một thư mục

Để Unzip trên Linux vào một thư mục nhất định, bạn thêm option -d (directory) rồi trích đường dẫn đến thư mục như sau:

unzip -q source_code.zip -d ./development

Giải nén file có mật khẩu

Nếu file được nén kèm theo mật khẩu thì lệnh unzip sẽ tự yêu cầu người dùng cung cấp mật khẩu để giải nén: Nếu bạn muốn hiển thị mật khẩu khi nhập thì bạn có thể nhập lệnh trong command-line bằng option -P (password):

unzip -P fifty.treacle.cutlass -q source_code.zip

Loại file khỏi danh sách cần nén

Bạn không muốn giải nén một hoặc một nhóm file nhất định thì có thể dùng option -x (exclude). Giả sử bạn cần giải nén tất cả các file, trừ những file có phần mở rộng là “.h“:

unzip -q zipfile.zip -x *.h
Loại file khỏi danh sách cần nén
Loại file khỏi danh sách cần nén

Ghi đè file

Ví dụ bạn có một file lưu trữ đã được giải nén, nhưng lại chẳng may xoá mất một vài file trong đó. Cách giải quyết đơn giản nhất chính là extract lại file lưu trữ một lần nữa, nhưng nếu giải nén trong cùng một thư mục với file cũ thì lệnh unzip sẽ hỏi bạn có muốn ghi đè file không.

Khi đó, bạn có thể phản hồi theo danh sách sau (có phân biệt chữ hoa và chữ thường):

  • y: Yes – Ghi đè file.
  • n: No – Không thực hiện ghi đè file.
  • A: All – Ghi đè tất cả file.
  • N: None – Không ghi đè file nào.
  • r: Rename – Đổi sang tên mới, yêu cầu người dùng nhập tên mới cho file.

Để buộc unzip phải ghi đè các file hiện có, bạn có thể sử dụng option -o (overwrite) như sau:

unzip -o -q zipfile.zip
Giải nén có ghi đè
Giải nén có ghi đè

Cách hiệu quả nhất để thay thế những file bị mất là sử dụng unzip, chỉ giải nén những file có trong file lưu trữ, nhưng không có trong thư mục đích. Cụ thể, bạn dùng option -n (never overwrite) như sau:

unzip -n source_code.zip

Kiểm tra file ZIP

Bạn nên kiểm tra danh sách các file có trong ZIP trước khi bắt đầu giải nén. Lệnh unzip trên Linux hỗ trợ tính năng này bằng option -l (list archive), được pipe với less để quản lý output của lệnh:

unzip -l source_code.zip | less

Sau đó kết quả sẽ trả về danh sách các thư mục và file có trong file Zip, kích thước và thời gian được thêm vào zip. Để thoát khỏi lệnh less, bạn có thể nhấn nút q.

Kết quả thư mục và file có trong file Zip
Kết quả thư mục và file có trong file Zip

Thêm mật khẩu bằng lệnh zipcloak

Nếu đã tạo file ZIP xong nhưng bạn lại quên đặt mật khẩu thì bạn vẫn có thể thiết lập thêm mật khẩu cho file bằng lệnh zipcloak. Truyền tên của file ZIP vào lệnh trong command line, nhập mật khẩu và xác thực lại lần thứ hai để hoàn tất:

zipcloak zipfile.zip
Thêm mật khẩu cho file nén bằng lệnh zipcloak
Thêm mật khẩu cho file nén bằng lệnh zipcloak

Kiểm tra thông tin chi tiết bằng lệnh zipdetails

Lệnh zipdetails hiển thị rất nhiều thông tin chi tiết cho file ZIP, ngoài ra ta có thể kiểm tra output của lệnh này bằng cách pipe với less như sau:

zipdetails source_code.zip | less

Lưu ý rằng thông tin sẽ bao gồm cả tên file dù cho file ZIP được bảo vệ bằng mật khẩu, vì tên của file được lưu trữ dưới dạng meta-data chứ không được mã hoá nên vẫn sẽ hiển thị.

Hiển thị thông tin chi tiết file ZIP
Hiển thị thông tin chi tiết file ZIP

Tìm kiếm bên trong file bằng lệnh zipgrep

Lệnh zipgrep cho phép tìm kiếm bên trong file trong một file ZIP. Ví dụ bạn cần tìm các file bên trong file ZIP có cụm từ “keyval.h” bên trong:

zipgrep keyval.h source_code.zip
Tìm kiếm bên trong file bằng lệnh zipgrep
Tìm kiếm bên trong file bằng lệnh zipgrep

Có thể thấy rằng slang.cgetval.c là hai file có chứa chuỗi “keyval.h” ở trong nó. Ngoài ra còn có hai bản copy ở trong những thư mục khác của file ZIP.

Xem thông tin bằng lệnh zipinfo

Lệnh zipinfo cũng cho phép người dùng kiểm tra thông tin bên trong một file ZIP. Tương tự, ta cũng có thể pipe nó với lệnh less như sau:

zipinfo source_code.zip | less
Xem thông tin bên trong file Zip bằng lệnh zipinfo
Xem thông tin bên trong file Zip bằng lệnh zipinfo

Thông tin của output, theo thứ tự từ trái sang phải như sau:

  • Quyền truy cập file.
  • Phiên bản công cụ dùng để tạo file ZIP.
  • Kích thước file ban đầu.
  • Mô tả file.
  • Phương pháp nén.
  • Dấu thời gian.
  • Tên file và các thư mục.

Trong đó, mô tả của file bao gồm hai ký tự, ký tự ban đầu có thể là “t” hoặc “b” để chỉ file ở dạng text hay binary. Các ký tự in hoa cho biết rằng file đã được mã hoá. Ký tự thứ hai mô tả loại meta data có trong file:

  • l: nếu có local header được mở rộng, nhưng không có extra field.
  • x: không có local header được mở rộng, có extra field.
  • X: có cả local header được mở rộng và extra field.
  • : không có cả hai.
image 189
Cách cài đặt tạo file Zip và Unzip trên Linux để nén và giải nén file 42

Tách file bằng lệnh zipslit

Nếu bạn cần gửi file ZIP đến một người dùng nào đó nhưng bị giới hạn kích thước thì ta có thể chia nhỏ thành nhiều file bằng lệnh zipslit. Lệnh này cung cấp option -n (size) để đặt kích thước tối đa cho từng file ZIP mới.

Trong ví dụ dưới đây, Vietnix đã chia file zipfile.zip, kích thước tối đa của mỗi file con là 100 KB (tức 102400 byte) như sau:

zipsplit -n 100000 zipfile.zip
Tách file bằng lệnh zipsplit
Tách file bằng lệnh zipsplit

Lưu ý rằng kích thước chia không thể nhỏ hơn kích thước của bất kỳ file nào có trong file ZIP.

Lời kết

Trong bài viết này, Vietnix đã chia sẻ với bạn các lệnh thường được sử dụng phổ biến khi cần tạo file Zip hay Unzip trên Linux thông qua Terminal giúp bạn có thể dễ dạng nén, giải nén file và kiểm tra file dễ dàng hơn trên Linux.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG