post-image

Nén và giải nén các file trên VPS Linux

Tổng quan

Trong quá trình quản trị máy chủ ảo VPS, một trong những tác vụ rất thường xuyên phải thực hiện là thực hiện nén và giải nén các file và thư mục. Khi upload hoặc tải về mã nguồn từ VPS, việc nén các file là rất quan trọng đặc biệt với số lượng file và thư mục rất lớn.

1. Các phương thức nén file trong Linux

Chúng ta đã rất quen thuộc với phần mềm WinRAR trong Windows, nó có thể làm việc với rất nhiều các phương thức nén khác nhau. Với Linux, đặc biệt là trong môi trường dòng lệnh, có một số phương thức nén mà thường dùng nhất như file nén TAR, GZIP và ZIP. Do chúng ta đã quen thuộc nhiều với phần mềm WinRAR trên Windows nên trong bài viết này chúng tôi sẽ giới thiệu với các bạn phương pháp nén và giải nén các file dạng zip.

Chú ý là file zip này sẽ hoạt động bình thường cả ở trên Linux cũng như Windows do vậy bạn sẽ rất dễ dàng chuyển các file trong môi trường phát triển với Windows lên máy chủ có môi trường Linux.

2. Cài đặt Zip và Unzip trên VPS Linux

Trong các hệ điều hành biến thể của Linux như Red Hat, Ubuntu, CentOS… các ứng dụng zip và unzip là riêng biệt, do vậy chúng ta cần cài đặt cả hai ứng dụng này.

Trong màn hình dòng lệnh, nếu bạn thử thực hiện lệnh giải nén một file zip với cú pháp như sau:

unzip [filename].zip
Code language: CSS (css)

Ví dụ, giải nén file example.zip chúng ta có câu lệnh: unzip example.zip. Nếu VPS của bạn chưa cài đặt zip, nó sẽ báo lỗi:

bash: unzip: command not found
Code language: HTTP (http)

Do vậy, chúng ta cần cài đặt zip và unzip trên VPS, do có nhiều biến thể nên chúng ta cũng có những cài đặt khác nhau trên các hệ điều hành biến thể của Linux. Với Debian và Ubuntu, chúng ta sử dụng:

apt-get install zip apt-get install unzip
Code language: JavaScript (javascript)

Với Red Hat Linux, Fedora hoặc CentOS chúng ta lại sử dụng:

yum install zip yum install unzip

Như vậy chúng ta đã cài đặt xong ứng dụng zip và unzip để phục vụ việc nén các nội dung thành file .zip và giải nén các file .zip.

3. Các bước nén file với ứng dụng zip trong VPS Linux

3.1. Nén tất cả các file trong thư mục hiện hành

Để nén tất cả các file trong thư mục hiện hành sử dụng câu lệnh:

zip [đường dẫn/tên_file_zip].zip *
Code language: CSS (css)

Nếu bỏ qua đường dẫn thì file zip được tạo ra sẽ nằm trong thư mục hiện hành. Ví dụ:

zip /var/www/allaravel.com/backup/backup_20190101.zip *
Code language: JavaScript (javascript)

Khi đó toàn bộ file trong thư mục hiện hành sẽ được nén thành file backup_20190101.zip và đưa vào thư mục /var/www/allaravel.com/backup.

Chú ý: Câu lệnh này chỉ nén các file mà không đưa các thư mục con (sub folder) vào trong file zip.

3.2 Nén tất cả file và thư mục trong thư mục hiện hành

Thông thường chúng ta muốn nén tất cả mọi thứ trong thư mục hiện hành như file và thư mục con (kể cả file và thư mục trong thư mục con bao nhiêu cấp). Câu lệnh khác đi một chút là chúng ta thêm tham số -r (recursive – đệ quy). Cú pháp:

zip -r [đường dẫn\tên_file_zip].zip *
Code language: CSS (css)

Ví dụ:

zip -r /var/www/allaravel.com/backup/backup_20190101.zip *
Code language: JavaScript (javascript)

4. Hướng dẫn giải nén file .zip trên VPS Linux

4.1 Kiểm tra một file zip

Trong quá trình chuyển file, rất có thể file bị lỗi, bạn muốn kiểm tra xem file .zip có nguyên nội dung, có bị lỗi khi truyền file không sử dụng cú pháp sau:

unzip -tq [tên_file].zip
Code language: CSS (css)

Ví dụ:

unzip -tq backup_20190101.zip No errors detected in compressed data of backup_20190101.zip.
Code language: CSS (css)

Nếu file có tình trạng tốt thì sẽ có thông báo “No errors detected in compressed data of tên_file.zip”.

4.2 Xem danh sách file và thư mục nằm trong file zip

Đôi khi bạn muốn kiểm tra nội dung một file nén dạng zip trước khi giải nén, chúng ta có cú pháp sau để xem danh sách một file zip:

unzip -l [tên_file].zip
Code language: CSS (css)

4.3 Giải nén file zip

Nếu bạn muốn giải nén toàn bộ file và thư mục chứa trong file zip vào thư mục hiện hành, cú pháp như sau:

unzip [tên_file].zip
Code language: CSS (css)

Nếu chỉ muốn giải nén một file nào đó nằm trong file zip thì sử dụng cú pháp:

unzip [tên_file].zip [tên_file_muốn_giải_nén]
Code language: CSS (css)

Ví dụ:

unzip backup_20190101.zip config.php
Code language: CSS (css)

Chỉ giải nén và lấy file config.php nằm trong file nén backup_20190101.zip.

Tất cả hai cú pháp trên đều giải nén vào thư mục hiện hành, bạn có thể xác định thư mục đích để giải nén ra đó thông qua tham số -d (directory) như sau:

unzip [tên_file].zip -d [tên_thư_mục_đích]
Code language: CSS (css)

Ví dụ:

unzip backup_20190101.zip -d /var/www/allaravel.com/public_html
Code language: JavaScript (javascript)

Câu lệnh này sẽ giải nén toàn bộ file backup_20190101.zip vào thư mục /var/www/allaravel.com/public_html.

5. Lời kết

Như vậy, tôi đã giới thiệu với các bạn cách thức dễ dàng nhất để làm việc với các file nén dạng zip, nó giúp bạn thực hiện truyền file qua lại giữa các môi trường phát triển và môi trường máy chủ dễ dàng, kể cả hai môi trường này có sử dụng các hệ điều hành khác nhau như Windows hoặc Linux (Ubuntu, CentOS, RedHat…). Trong các bài viết khác chúng ta sẽ tìm hiểu về Tar và Gzip cũng là những phương thức nén rất quen thuộc với Linux.

Cảm ơn các bạn đã đọc.

Các bạn có thể tham khảo các bài viết hay về Laravel tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Nguồn tham khảo: Allaravel

Leave a Reply

Your email address will not be published.