Cách chia một tệp lưu trữ lớn thành nhiều tệp nhỏ bằng lệnh Split trong Linux

theanh

Administrator
Nhân viên
Mặc dù một trong những lý do chính đằng sau việc tạo kho lưu trữ là tính dễ xử lý và chuyển giao, đôi khi bản thân tệp nén quá lớn đến mức việc chuyển giao qua mạng trở thành cơn ác mộng, đặc biệt là khi tốc độ mạng chậm.

Vậy, cần phải làm gì trong những trường hợp như thế này? Có giải pháp nào cho vấn đề này không? Vâng, có - một giải pháp là chia tệp nén thành các bit nhỏ hơn, có thể dễ dàng chuyển giao qua mạng. Tại đích, bạn có thể nối chúng lại để lấy kho lưu trữ gốc.

Nếu giải pháp nghe có vẻ thú vị và bạn muốn hiểu chính xác cách thực hiện trong Linux, bạn sẽ vui mừng khi biết rằng chúng tôi sẽ thảo luận từng bước về tất cả các chi tiết quan trọng trong hướng dẫn này.

Trước khi tiếp tục, vui lòng lưu ý rằng tất cả các hướng dẫn và lệnh được đề cập trong bài viết này đã được thử nghiệm trên Ubuntu 14.04.


Cách chia nhỏ các kho lưu trữ lớn​

Có một tiện ích dòng lệnh - được gọi là Split - giúp bạn chia nhỏ các tệp thành nhiều phần. Nó được cài đặt sẵn trên hầu hết các bản phân phối Linux, vì vậy bạn không cần phải thực hiện bất kỳ bước bổ sung nào để tải xuống và cài đặt nó. Sau đây là cú pháp của lệnh này:
Mã:
split [OPTION]... [INPUT [PREFIX]]
Tại đây, INPUT biểu thị tên của tệp cần được chia thành các bit nhỏ hơn và PREFIX là văn bản mà bạn muốn được thêm tiền tố vào tên của tệp đầu ra. Trong trường hợp của chúng tôi, OPTION sẽ là -b để chúng ta có thể chỉ định kích thước của tệp đầu ra.

Để hiểu cách sử dụng Split thông qua một ví dụ, trước tiên bạn cần có tệp nén mà bạn muốn chia nhỏ. Ví dụ, tôi có tệp .zip 60MB sau đây trong trường hợp của mình:



Đây là lệnh Split đang hoạt động:



Như bạn có thể thấy, khi sử dụng tùy chọn -b, tôi đã yêu cầu lệnh Split chia tệp .zip lớn thành các phần bằng nhau, mỗi phần 20MB, cung cấp tên đầy đủ của tệp nén cũng như văn bản tiền tố.

Sau đây là cách tôi xác minh rằng lệnh Split thực sự đã thực hiện những gì được yêu cầu:



Như hiển nhiên từ đầu ra trong ảnh chụp màn hình ở trên, ba tệp có tên bao gồm tiền tố tôi cung cấp và mỗi tệp nặng 20MB đã được tạo ra trong đầu ra.

Tất nhiên, ngoài các tệp .zip, bạn cũng có thể sử dụng phương pháp đã đề cập ở trên để chia các loại tệp nén khác. Ví dụ, đây là cách tôi sử dụng cùng lệnh mà chúng ta đã thảo luận trước đó để chia tệp .tar.xz:



Như bạn đã hiểu, nếu bạn muốn chia tệp thành nhiều phần có kích thước tính bằng MB, bạn cần sử dụng chữ cái M với số liệu mà bạn cung cấp trên dòng lệnh. Và nếu - giống như trường hợp chúng ta vừa thảo luận - các tệp có kích thước tính bằng KB, bạn nên sử dụng chữ cái K.

Cho đến nay, chúng ta chỉ sử dụng tùy chọn -b do lệnh Split cung cấp; đó là vì nó thực hiện những gì chúng ta muốn - yêu cầu lệnh chia tệp đầu vào dựa trên kích thước theo tùy chọn này trên dòng lệnh. Tuy nhiên, tùy thuộc vào trường hợp và yêu cầu của bạn, bạn có thể muốn sử dụng một số tùy chọn khác mà lệnh Split cung cấp.

Sau đây là danh sách các tùy chọn cùng với giải thích ngắn gọn về chức năng của chúng:
  • -a, --suffix-length=N: tạo hậu tố có độ dài N (mặc định là 2)
  • --additional-suffix=SUFFIX: thêm một SUFFIX bổ sung vào tên tệp.
  • -b, --bytes=SIZE: đặt SIZE byte cho mỗi tệp đầu ra
  • -C, --line-bytes=SIZE: đặt tối đa SIZE byte số dòng cho mỗi tệp đầu ra
  • -d, --numeric-suffixes[=FROM]: sử dụng hậu tố số thay vì chữ cái. FROM thay đổi giá trị bắt đầu (mặc định là 0).
  • -e, --elide-empty-files : không tạo các tệp đầu ra trống với '-n'
  • --filter=COMMAND : ghi vào shell COMMAND; tên tệp là $FILE
  • -l, --lines=NUMBER : đặt NUMBER dòng cho mỗi tệp đầu ra
  • -n, --number=CHUNKS : tạo các tệp đầu ra CHUNKS.
  • -u, --unbuffered : sao chép ngay đầu vào vào đầu ra với '-n r/...'
Cho đến bây giờ, chúng ta chỉ thảo luận về cách chia một kho lưu trữ lớn thành nhiều phần nhỏ hơn. Không cần phải nói, điều đó vô ích cho đến khi bạn cũng biết cách nối chúng lại để truy xuất tệp nén gốc. Vậy, đây là cách bạn có thể thực hiện điều đó:

Không có tiện ích dòng lệnh đặc biệt nào để nối các phần nhỏ hơn, vì lệnh Cat cũ có thể xử lý tác vụ này. Ví dụ, đây là cách tôi lấy tệp Kaku-linux32.zip thông qua lệnh Cat:



Bạn có thể trích xuất tệp lưu trữ đã lấy và so sánh với tệp gốc để xác minh chéo rằng không có gì thay đổi.


Kết luận​

Nếu bạn là người dùng Linux và công việc hàng ngày của bạn liên quan đến việc xử lý các tệp nén lớn và chia sẻ chúng với người khác qua mạng, thì rất có thể bạn sẽ muốn chia nhỏ một tệp lưu trữ trong một số trường hợp. Tất nhiên, giải pháp được đề cập trong hướng dẫn này có thể không phải là giải pháp duy nhất khả dụng, nhưng chắc chắn là một trong những giải pháp đơn giản nhất và ít tốn công sức nhất.

Trong trường hợp bạn sử dụng một cách tiếp cận khác để chia nhỏ các tệp lưu trữ lớn rồi nối lại và muốn chia sẻ giải pháp của mình với người khác, bạn có thể thực hiện trong phần bình luận bên dưới.
 
Back
Bên trên