Làm cách nào để chúng tôi có thể GZip mọi tệp riêng biệt?GZip mỗi tệp riêng biệt
Tôi không muốn có tất cả các tệp trong tar lớn.
Làm cách nào để chúng tôi có thể GZip mọi tệp riêng biệt?GZip mỗi tệp riêng biệt
Tôi không muốn có tất cả các tệp trong tar lớn.
Bạn có thể sử dụng gzip *
Lưu ý:
-k
(--keep
) tùy chọn giữ các tệp gốc.Hãy thử một vòng lặp
$ for file in *; do gzip "$file"; done
Nếu bạn muốn gzip mỗi tập tin đệ quy, bạn có thể sử dụng tìm đường ống để xargs:
$ find . -type f -print0 | xargs -0r gzip
Dễ dàng và câu trả lời rất nhanh mà sẽ sử dụng tất cả các lõi CPU của bạn song song:
parallel gzip ::: *
Eh, câu trả lời này cần nhiều upvotes hơn! – zx8754
@ zx8754 ** GNU Parallel ** là một công cụ tuyệt vời nên được sử dụng nhiều hơn trong thế giới này, nơi CPU chỉ nhận được nhiều lõi hơn là tốc độ hơn. Có rất nhiều ví dụ mà tất cả chúng ta sẽ làm tốt để dành 10 phút để đọc ... https://www.gnu.org/software/parallel/parallel_tutorial.html –
Biết về song song, nhưng đừng quên sử dụng nó! Ran câu trả lời được chấp nhận sau đó cuộn xuống để xem câu trả lời của bạn ... lưu rất nhiều giờ! Có lẽ một ý tưởng hay để làm cho bình luận của bạn là một bản chỉnh sửa cho câu trả lời của bạn? – zx8754
Sau bảy năm, bình luận được đánh giá cao này vẫn chưa có câu trả lời chính thức, vì vậy tôi đang quảng bá nó ngay bây giờ:
gzip -r .
Điều này có hai lợi thế so với câu trả lời hiện được chấp nhận: nó hoạt động đệ quy nếu có bất kỳ thư mục con nào và nó sẽ không bị lỗi từ số Argument list too long
nếu số tệp quá lớn.
Không cần tìm + xarg. Gzip có thể tự xử lý đệ quy: 'gzip -9r .' – Idelic
Như mọi khi,' tìm. -type f -print0 | xargs -0r gzip' là tốt hơn. – musiphil
Đối với tương đương 'gzip *', bạn cũng có thể cần '-maxdepth 1' trong' find'. – musiphil