Chia một tệp lớn thành các phần nhỏ hơn


65

Làm cách nào để chia một tệp lớn, + 4GB thành các tệp nhỏ hơn khoảng 500 MB mỗi tệp .

Và làm cách nào để tôi lắp ráp lại chúng một lần nữa để có được tệp gốc?


2
phiên bản văn bản dòng khôn ngoan: stackoverflow.com/questions/2016894/ Hãy
Ciro Santilli 改造 心 心

Câu trả lời:


79

Bạn có thể sử dụng táchmèo .

Ví dụ như một cái gì đó như

$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.

(trong đó tên tệp đầu vào là foovà đối số cuối cùng là tiền tố đầu ra). Điều này sẽ tạo các tệp như foo.000 foo.001...

Lệnh tương tự với các tùy chọn ngắn:

$ split -b 100k -d -a 3 foo foo

Bạn cũng có thể chỉ định "--line-byte" nếu bạn muốn nó phân chia trên ranh giới dòng thay vì chỉ số byte chính xác.

Để lắp ráp lại các mảnh được tạo lại, bạn có thể sử dụng, ví dụ:

$ cat foo.* > foo_2

(giả sử rằng trình bao sắp xếp các kết quả của quá trình tạo vỏ - và số phần không vượt quá giới hạn phụ thuộc hệ thống của các đối số)

Bạn có thể so sánh kết quả thông qua:

$ cmp foo foo_2
$ echo $?

(nên xuất 0)

Ngoài ra, bạn có thể sử dụng kết hợp find / sort / xargs để lắp ráp lại các mảnh:

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3

2
Hãy thử lệnh này:man split cat md5sum
Kevin M

6
Khi lắp ráp, tôi đề nghị cat foo.{000..NNN}đâu NNNlà mảnh dự kiến ​​cuối cùng. Bằng cách đó bạn sẽ nhận được thông báo lỗi nếu thiếu một trong các phần. Nhưng lưu ý rằng -dđể có được các hậu tố số là đặc trưng cho phân chia GNU; trên các nền tảng khác, bạn phải làm gì với foo.aaa, foo.aabvv
Gilles 'Somali dừng vốn là xấu'

1
Và hãy nhớ rằng, cho split, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024, v.v.
Zorawar

1
Nên không này ... cat > foo_3được ... cat >>foo_3?
kiềm

1
Nếu bạn quyết định giảm đau bằng cách sử dụng một tiện ích. rar7zipthường được sử dụng để làm cho các phần tách như vậy dễ dàng hơn để lắp ráp lại đa nền tảng
kết hợp vào

4

Bạn cũng có thể làm điều này với Trình quản lý lưu trữ nếu bạn thích GUI. Xem trong 'Lưu-> Tùy chọn khác-> Chia thành các khối'.


5
tôi đã gắn thẻ 'dòng lệnh', nhưng cảm ơn vì câu trả lời :)
Stefan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.