Có thể lập trình kéo một tệp từ một tệp .tar.gz có kích thước không cần giải nén toàn bộ tarball vào đĩa không? Về cơ bản tôi cần phải nhận được bên trong các tập tin tar.gz lớn trên mạng và trích xuất 1 tệp văn bản nhỏ. Có vẻ như hơi quá tải để giải nén tarball vào đĩa, sau đó kéo tệp ra, sau đó xóa mọi thứ khác. Ngoài ra tôi sẽ làm điều này đệ quy (ví dụ như phụ thuộc gói, mỗi tập tin văn bản chỉ vào tar.gz nhiều hơn), do đó, lưu lượng mạng ít hơn và chu kỳ CPU tôi có thể nhận được đi với, thì tốt hơn.Trích xuất 1 tệp từ tar.gz bằng bash
Trả lời
Từ trang người đàn ông, để trích xuất blah.txt từ foo.tar.gz:
tar -xzf foo.tar.gz blah.txt
(Và điều này tiếp tục superuser, tất nhiên, nhưng hey, câu trả lời nhanh chóng là tốt đẹp quá.)
Thao tác này có hoạt động nếu tệp nằm trong thư mục con bên trong cấu trúc tar.gz không? – tj111
Với phiên bản hiện đại của GNU tar, bạn không phải chỉ định tùy chọn 'z' khi trích xuất - nó sẽ suy ra chính nó (và tương tự với tùy chọn 'j' cho các tệp nén bzip2). Khi tạo tập tin, bạn cần tùy chọn để nói cho tar biết cần tạo ra gì - vì vậy đối xứng không gây hại gì cả. –
@ tj111: nếu tên tệp trong tệp tar là 'xyz/pqr/abc.txt', đó là những gì bạn chỉ định trong dòng lệnh. Bạn cũng có thể sử dụng các siêu ký tự kiểu shell: 'xyz/pqr/*' sẽ trích xuất tất cả các tệp trong tất cả các thư mục con trong 'xyz/pqr'. Chỉ cần cảnh giác xem liệu shell có mở rộng '*' cho bạn hay không - hãy sử dụng dấu ngoặc kép để dừng nó làm như vậy. –
Tôi phản hồi câu trả lời của Jefromi, với việc thêm đường dẫn đến tệp nếu bạn có thư mục trong tệp tar (điều này có vẻ hiển nhiên đối với một số, nhưng ban đầu nó không rõ ràng về cách chỉ định cấu trúc thư mục).
Ví dụ, nếu bạn đã làm tar tại thư mục src /, và blah.txt đã được release1/shared /, bạn sẽ quay lại thư mục src/(nếu bạn muốn nó không được xác định tại cùng một vị trí)
tar -xzf tar.gz release1/shared/blah.txt
Nếu bạn không nhớ cấu trúc thư mục của tập tin tar của bạn (tôi là một chút vô tổ chức và đôi khi quên nơi tôi đã làm tar), bạn có thể luôn luôn
tar -tzf tar.gz
để xem nội dung , hủy bỏ (Ctrl + C) một khi bạn nhận được một ý tưởng về cấu trúc thư mục của bạn.
Cảm ơn vì điều này. Mặc dù nó xuất hiện bạn cần một '. /' Ở phía trước của các thư mục vì lý do gì để quét chúng. ví dụ. 'tar -xzf tar.gz./release1/shared/blah.txt' – tj111
- 1. trích xuất các từ từ một tệp
- 2. Trích xuất tọa độ từ tệp KML BatchGeo bằng Python
- 3. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 4. Trích xuất mã VB.NET từ tệp exe
- 5. Bash: trích xuất một phần của chuỗi
- 6. Trích xuất tiêu đề từ tệp PDF?
- 7. trích xuất tên tệp từ đường dẫn
- 8. Trích xuất bằng sed hoặc grep
- 9. Trích xuất bảng từ tệp kết xuất mysql.sql
- 10. trích xuất theo chương trình tar.gz trong một bước (trên cửa sổ có 7zip)
- 11. Cách trích xuất tên tệp từ tên đường dẫn tệp?
- 12. Trích xuất văn bản từ pdf và các tệp từ
- 13. Trích xuất bảng từ DOCX
- 14. Làm cách nào để trích xuất tệp tar trong Java?
- 15. Trích xuất EXIF từ JPEG
- 16. Cách trích xuất trang trình bày từ video bằng python
- 17. C# Trích xuất văn bản từ PDF bằng PdfSharp
- 18. Trích xuất các cụm từ khóa từ văn bản (1-4 từ ngram)
- 19. Cách tìm/trích xuất dữ liệu từ xml bằng jQuery
- 20. Trích xuất một từ cụ thể bằng gsub và regex
- 21. Làm cách nào để trích xuất văn bản từ tệp PDF bằng Python?
- 22. Trích xuất hình ảnh bằng iTextSharp
- 23. Trích xuất văn bản từ tệp pdf bằng cách sử dụng javascript
- 24. Trích xuất x giá trị ngẫu nhiên từ một mảng bash
- 25. Trích xuất vmlinux từ vmlinuz hoặc bzImage
- 26. Tôi làm cách nào để khôi phục tệp từ tệp lưu trữ .tar.gz bị hỏng?
- 27. Trích xuất mã băm SHA1 từ tệp torrent
- 28. Cách trích xuất các lớp từ tệp .jar?
- 29. Trích xuất tọa độ từ tệp KML trong Java
- 30. Trích xuất URL từ các tệp văn bản/HTML lớn
Không, nó có liên quan. Và bash là lập trình (loại). –
@Matt Joiner: Nó không thực sự liên quan đến bash. Đó là một câu hỏi sử dụng cho một tiện ích hệ thống phổ biến có thể được gọi từ bất kỳ trình bao nào, không chỉ bash. Nhưng có, lập trình trong bash thực sự là chương trình, mặc dù những gì bạn có thể đã nghe đôi khi ở đây. – Cascabel
Vâng, tôi nghĩ về SU nhưng nó nằm trong một kịch bản bash tương đối phức tạp, và nó sẽ được chạy qua máy không phải bởi một người sử dụng, vì vậy tôi figured nó là một chút SO hơn SU. – tj111