Cách đơn giản hóa việc nén file 7z với Bash Alias

Có nhiều cách và công cụ bạn có thể sử dụng để thu nhỏ file của mình, nhằm giảm bớt dung lượng chúng chiếm hoặc gửi chúng dưới dạng gói cho một số liên lạc. Trong số này, 7-Zip giành được vị trí số 1 trong lòng hầu hết người dùng, nhờ sự kết hợp độc đáo giữa hiệu suất và mức độ nén tuyệt vời với chi phí bằng 0.

Tất cả các hình thức nén trong định dạng này thực chất phức tạp hơn cách tiếp cận mà ta sẽ thấy ở đây. Ít nhất là hầu hết người dùng sử dụng việc nén để gói mọi thứ trong một thư mục và các thư mục con của nó thành những gói được nén.

Vì vậy, hãy cùng xem cách kết hợp hỗ trợ của Bash cho alias với phiên bản dòng lệnh 7z để tạo các gói cho file bằng một lệnh đơn giản.

Cài đặt p7zip

Là công cụ nén phổ biến nhất, 7-Zip rất có thể đã được cài đặt trong bản phân phối Linux của bạn. Để kiểm tra nó, hãy thử lệnh lệnh 7z trong một terminal. Nếu chưa được cài đặt, bạn có thể cài đặt nó trong các bản phân phối dựa trên Ubuntu/Debian bằng lệnh:

sudo apt-get install p7zip-full

Tạo Bash alias

Các Bash alias cho phép ánh xạ nhiều lệnh hoặc thậm chí những chuỗi nhiều lệnh thành các từ đơn. Cách dễ dàng để thêm alias vào Bash là chèn chúng vào cuối file “~/.bashrc”. Vì mục đích thuận tiện và giúp mọi thứ được tổ chức, tốt nhất nên đặt chúng vào một file riêng biệt.

Có khả năng file này đã tồn tại và cấu hình Bash bao gồm một tham chiếu đến nó. Kiểm tra xem điều đó có phải không bằng cách mở “~/.bashrc” trong trình xử lý văn bản yêu thích và tìm kiếm:

if [-f ~/.bash_aliases]; then
 
 . ~/.bash_aliases
 
 Fi

Nếu không, hãy thêm nó vào cuối file sau khi mọi thứ đã có sẵn.

Tạo Bash alias

Làm cho thông tin của 7-Zip trở nên tiện dụng

Bạn có thể chạy 7-Zip trong một terminal để xem danh sách các tùy chọn dòng lệnh của nó. Để biết thêm thông tin toàn diện, hãy truy cập hướng dẫn sử dụng: https://sevenzip.osdn.jp/chm/cmdline/index.htm hoặc trang man của chương trình với:

man 7z

Những thứ này sẽ giúp bạn thiết lập các lệnh nén của riêng mình. Nhiều khả năng, những cái được đề cập ở đây cũng sẽ đáp ứng nhu cầu của bạn. Vì vậy, bạn có thể sao chép và dán chúng vào file .bash_aliases của riêng mình.

Làm cho thông tin của 7-Zip trở nên tiện dụng

Tạo alias siêu nén

Mở file “~/.bash_aliases” trong trình xử lý văn bản yêu thích của bạn (bài viết sử dụng nano). Nhập lệnh sau:

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'

Tạo alias siêu nén

alias 75 cho biết ta muốn tạo lệnh “75”, sẽ sử dụng từ bây giờ để nén tất cả các file và folder trong một thư mục vào gói 7-Zip. Lý do mà ví dụ áp dụng tên đặc biệt này cho lệnh là vì nó là một phiên bản ngắn gọn của “7zip compression level 5”, rất dễ nhớ.

7z là bản thân lệnh nén. a theo sau nó có nghĩa là ta muốn thêm các file vào một gói nén mới. -r chỉ ra rằng p7zip không bị ràng buộc với thư mục nơi nó chạy, nhưng nên bao gồm gói nén cuối cùng và tất cả các thư mục con trong đó, cùng với mọi nội dung của nó.

-t7z -m0 = lzma2 chỉ ra rằng ta muốn tạo các gói 7zip chủ yếu sử dụng thuật toán LZMA2 để nén file. Điều này thường mang lại kết quả nén tốt nhất cho hầu hết mọi loại file.

-mx=9 -myx=9 tương ứng với mức độ nén và "mức độ nỗ lực" 7-Zip sẽ đưa vào việc phân tích nội dung của các file được nén để tìm chiến lược nén tốt nhất. Giá trị của chúng càng cao, độ nén càng lớn và gói xuất ra càng nhỏ.

Cuối cùng, -mqs=on -ms=on xác định rằng ta muốn mức độ nén cứng (solid). Điều này có nghĩa là p7zip sẽ nén các file tương tự dưới dạng những khối dữ liệu duy nhất, đạt được kết quả thậm chí tốt hơn. Lý do chúng tồn tại như một tùy chọn bạn có thể vô hiệu hóa là vì chúng hữu ích, nhưng cũng đi kèm với 2 nhược điểm. Chúng kéo dài thời gian nén và làm cho người dùng không thể giải nén các file độc lập khỏi gói cuối cùng mà công cụ nén tạo ra. Với mức độ nén cứng, bạn không thể thực hiện việc trích xuất một file duy nhất từ ​​file zip, và phải giải nén toàn bộ gói để truy cập nội dung của nó.

Nhân rộng và cắt giảm các alias

Bài viết đã bắt đầu với lệnh đạt được mức nén tối đa có thể để thay vì phải mở rộng nó với nhiều phần tử hơn, ví dụ có thể quay lại, loại bỏ các tham số và giảm bớt những giá trị đã đặt.

Bắt đầu bằng cách sao chép lệnh hiện có thêm 5 lần nữa, đặt mỗi lệnh vào một dòng riêng. Để lại dòng đầu tiên, vì nó đã đạt được mức nén cao nhất có thể. Sửa đổi phần còn lại, theo thứ tự, bằng cách loại bỏ các tùy chọn bổ sung và giảm mức độ nén như bạn thấy bên dưới. Hãy nhớ thay đổi alias của chúng để phù hợp với các mức nén thấp hơn.

Nhân rộng và cắt giảm các alias

Bạn luôn có thể sao chép các mục sau và dán nó vào ~/.bash_aliases của mình thay thế.

alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'
 
 alias 74='7z a -r -t7z -m0=lzma2 -mx=9'
 
 alias 73='7z a -r -t7z -m0=lzma2 -mx=7'
 
 alias 72='7z a -r -t7z -m0=lzma2 -mx=5'
 
 alias 71= '7z a -r -t7z -m0=lzma2 -mx=3'
 
 alias 70='7z a -r -t7z -m0=lzma2 -mx=1'

Kích hoạt alias của bạn

Lưu các thay đổi vào file và trở về terminal. Để load và kích hoạt alias mới, hãy sử dụng lệnh sau:

source ~/.bashrc

Các lệnh nén mới đang hoạt động. P7zip hoạt động theo mặc định trên tất cả các file trong thư mục nơi nó chạy, nếu bạn không xác định rõ ràng những gì mình muốn nén như một tham số. Vì vậy, tất cả những gì bạn cần làm từ bây giờ khi muốn nén nội dung của thư mục vào gói 7z là nhập lệnh:

75 archive_name

Ở đây, "75" là một alias cho mức độ nén cao nhất từ trước đó và “archive_name” là tên của gói file nén. Bạn có thể thay thế 75 bằng một trong những alias khác (từ 75 xuống 70) để nén dần dần nhưng nhanh hơn và sử dụng bất kỳ tên nào bạn muốn cho file cuối cùng.

Kích hoạt alias

Nếu bạn có bất kỳ câu hỏi nào, hãy để lại ý kiến trong phần bình luận dưới đây nhé!

Chúc bạn thực hiện thành công!

Thứ Tư, 11/12/2019 12:47
51 👨 140
0 Bình luận
Sắp xếp theo