Ra mắt hai series mới cực hot Trí tuệ nhân tạo A đến ZPython công cụ không thể thiếu khi nghiên cứu Data science, Machine learning.

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

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

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

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

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 *

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 *

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 *

Ví dụ:

zip -r /var/www/allaravel.com/backup/backup_20190101.zip *

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

Ví dụ:

unzip -tq backup_20190101.zip
No errors detected in compressed data of backup_20190101.zip.

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

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

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]

Ví dụ:

unzip backup_20190101.zip config.php

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]

Ví dụ:

unzip backup_20190101.zip -d /var/www/allaravel.com/public_html

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ÁC BÀI VIẾT KHÁC

FirebirD

Đam mê Toán học, Lập trình. Sở thích chia sẻ kiến thức, Phim hài, Bóng đá, Cà phê sáng với bạn bè.

PHP Autoloading là gì? PSR-4 autoloading với Composer

All Laravel chuyển đổi sang OctoberCMS thành công

0 Bình luận trong "Nén và giải nén các file trên VPS Linux"

Thêm bình luận