Câu trả lời:
Sử dụng "- bộ lọc":
split --bytes=1024M --filter='gzip > $FILE.gz' /path/to/input /path/to/output
Một lớp lót sử dụng một điều kiện là gần như bạn có thể đến.
cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*
gzip
sẽ chỉ chạy nếu split
thành công vì điều kiện &&
cũng nằm giữa cd
và split
đảm bảo cd
thành công, quá .. Lưu ý rằng split
và gzip
xuất ra thư mục hiện tại thay vì có khả năng chỉ định thư mục đầu ra. Bạn có thể tạo thư mục, nếu cần:
mkdir -p /path/to/output && cd /path/to/output && split --bytes=1024M /path/to/input/filename && gzip x*
Để đặt tất cả lại với nhau:
gunzip /path/to/files/x* && cat /path/to/files/x* > /path/to/dest/filename
--line-bytes=1024M
.