ZIP là định dạng tệp lưu trữ được sử dụng rộng rãi nhất hỗ trợ nén dữ liệu không mất dữ liệu. Tệp ZIP là một thùng chứa dữ liệu chứa một hoặc nhiều tệp hoặc thư mục được nén.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách giải nén các tệp trong các hệ thống Linux thông qua dòng lệnh bằng cách sử dụng lệnh
unzip
.
Giải nén là gì?
unzip
là một tiện ích giúp bạn liệt kê, kiểm tra và trích xuất kho lưu trữ ZIP đã
nén.
unzip
không được cài đặt theo mặc định trong hầu hết các bản phân phối Linux, nhưng bạn có thể dễ dàng cài đặt nó bằng trình quản lý gói phân phối của mình.
Cài đặt
unzip
trên Ubuntu và Debian
sudo apt install unzip
Cài đặt
unzip
trên CentOS và Fedora
sudo yum install unzip
Cách giải nén tệp ZIP
Ở dạng đơn giản nhất khi được
sử dụng mà không có bất kỳ tùy chọn nào, lệnh
unzip
sẽ trích xuất tất cả các tệp từ kho lưu trữ ZIP được chỉ định vào thư mục hiện tại.
unzip filename.zip
Để trích xuất một kho lưu trữ ZIP vào một thư mục cụ thể, người dùng cần có quyền ghi trên thư mục đó.
Các tệp ZIP không hỗ trợ thông tin quyền sở hữu theo kiểu Linux và tất cả các tệp được trích xuất sẽ thuộc quyền sở hữu của người dùng chạy lệnh.
Ví dụ: giả sử bạn đã tải xuống tệp ZIP cài đặt Wordpress. Để giải nén tệp này vào thư mục hiện tại, bạn chỉ cần chạy lệnh sau:
unzip latest.zip
Cách loại bỏ đầu ra từ lệnh
unzip
Theo mặc định, lệnh
unzip
in tên của tất cả các tệp mà nó giải nén và tóm tắt khi quá trình trích xuất hoàn tất.
Sử dụng công tắc
-q
để chặn việc in các tin nhắn này.
unzip -q filename.zip
Cách giải nén tệp ZIP vào một thư mục khác
Để giải nén tệp ZIP trong một thư mục khác với thư mục hiện tại, hãy sử dụng khóa
-d
:
unzip filename.zip -d /path/to/directory
Ví dụ: để giải nén tệp lưu trữ WordPress mới
latest.zip
vào thư mục
/var/www/
, bạn sẽ sử dụng lệnh sau:
sudo unzip latest.zip -d /var/www
Trong lệnh trên, chúng tôi đang sử dụng
sudo
vì trong hầu hết các trường hợp, người dùng chúng
tôi đăng nhập vì không có quyền ghi vào thư mục
/var/www
. Khi các tệp ZIP được giải nén bằng sudo, các tệp và thư mục được giải nén sẽ được sở hữu bởi người dùng root.
Cách giải nén tệp ZIP được bảo vệ bằng mật khẩu
Để giải nén một tệp được bảo vệ bằng mật khẩu, hãy sử dụng khóa
-P
theo sau là mật khẩu:
unzip -P PasswOrd filename.zip
Cách loại trừ tệp khi giải nén tệp ZIP
unzip filename.zip -x file-to-exclude
Trong ví dụ sau, chúng tôi sẽ trích xuất tất cả các tệp và thư mục từ kho lưu trữ ZIP ngoại trừ
.git
:
unzip filename.zip -x "*.git/*"
Cách ghi đè tập tin hiện có khi sử dụng Unzip
Giả sử bạn đã giải nén tệp ZIP và bạn đang chạy lại cùng một lệnh:
unzip latest.zip
Theo mặc định,
unzip
sẽ hỏi bạn xem bạn có muốn ghi đè lên tệp hiện tại không, ghi đè tất cả các tệp, bỏ qua trích xuất tệp hiện tại, bỏ qua trích xuất tất cả các tệp hoặc đổi tên tệp hiện tại.
Archive: latest.zip replace wordpress/xmlrpc.php? es, o, ll, one, ename:
unzip -o filename.zip
Sử dụng tùy chọn này một cách thận trọng. Các tệp sẽ bị ghi đè và nếu bạn thực hiện bất kỳ thay đổi nào đối với các tệp, các thay đổi sẽ bị mất.
Cách giải nén tệp ZIP mà không cần ghi đè tệp hiện có
Giả sử bạn đã giải nén tệp ZIP và bạn đã thực hiện thay đổi đối với một số tệp nhưng bạn đã vô tình xóa một số tệp. Bạn muốn giữ các thay đổi và khôi phục các tệp đã bị xóa khỏi kho lưu trữ ZIP.
Trong trường hợp này, bạn sẽ sử dụng tùy chọn
-n
buộc
unzip
để bỏ qua việc trích xuất tệp đã tồn tại.
unzip -n filename.zip
Cách giải nén nhiều tập tin ZIP
unzip '*.zip'
Lưu ý các trích dẫn đơn xung quanh
*.zip
. Nếu bạn quên trích dẫn đối số, shell sẽ mở rộng ký tự đại diện và bạn sẽ gặp lỗi.
Cách liệt kê nội dung của tệp Zip
Để liệt kê nội dung của tệp ZIP, hãy sử dụng khóa
-l
:
unzip -l filename.zip
Trong ví dụ dưới đây, chúng tôi sẽ liệt kê tất cả các tệp cài đặt WordPress:
unzip -l latest.zip
Đầu ra sẽ như thế này:
Archive: latest.zip Length Date Time Name --------- ---------- ----- ---- 0 2018-08-02 22:39 wordpress/ 3065 2016-08-31 18:31 wordpress/xmlrpc.php 364 2015-12-19 12:20 wordpress/wp-blog-header.php 7415 2018-03-18 17:13 wordpress/readme.html…… 21323 2018-03-09 01:15 wordpress/wp-admin/themes.php 8353 2017-09-10 18:20 wordpress/wp-admin/options-reading.php 4620 2017-10-24 00:12 wordpress/wp-trackback.php 1889 2018-05-03 00:11 wordpress/wp-comments-post.php --------- ------- 27271400 1648 files
Phần kết luận
Chúng ta đã nói về cách giải nén các tệp trong Linux, từ dòng lệnh.
Để tạo một kho lưu trữ ZIP trên hệ thống Linux, bạn sẽ cần sử dụng lệnh zip.
giải nén thiết bị đầu cuối