Từ những gì tôi có thể nhóm các ngươi lại không thể làm cả hai với lệnh zip
, tôi có nghĩa bạn không thể cả hai xác định tên tập tin và đường ống nội dung. Bạn có thể đặt nội dung vào đường ống và tệp kết quả là -
hoặc bạn có thể đặt tên cho các tên tệp bằng [email protected]
.
Điều đó không có nghĩa là làm như vậy là không thể sử dụng các kỹ thuật khác. Tôi phác thảo một trong những điều dưới đây. Nó có nghĩa là bạn phải cài đặt PHP và tải phần mở rộng zip.
Có thể có rất nhiều cách khác để thực hiện. Nhưng đây là cách dễ nhất mà tôi biết. Oh và nó cũng là một lớp lót.
Đây là một ví dụ làm việc sử dụng PHP
echo contents | php -r '$z = new ZipArchive();$z->open($argv[1],ZipArchive::CREATE);$z->addFromString($argv[2],file_get_contents("php://stdin"));$z->close();' test.zip testfile
Để chạy trên cửa sổ chỉ trao đổi dấu nháy đơn và đôi. Hoặc chỉ cần đặt tập lệnh trong một tệp.
"test.zip" là tệp Zip kết quả, "testfile" là tên của nội dung đang được đưa vào lệnh.
Kết quả từ unzip -l test.zip
Archive: test.zip
Length Date Time Name
--------- ---------- ----- ----
6 01-07-2010 12:56 testfile
--------- -------
6 1 file
Và đây là một ví dụ làm việc sử dụng python
echo contents | python -c "import sys
import zipfile
z = zipfile.ZipFile(sys.argv[1],'w')
z.writestr(sys.argv[2],sys.stdin.read())
z.close()
" test5.zip testfile2
Kết quả unzip -l
Archive: test5.zip
Length Date Time Name
-------- ---- ---- ----
9 01-07-10 13:43 testfile2
-------- -------
9 1 file
Kết quả unzip -p
contents
Nguồn
2010-01-07 11:56:12
Vui lòng không gắn thẻ câu hỏi là "thuộc về superuser" (hoặc thuộc bất kỳ nơi nào khác) - chỉ cần bỏ phiếu để di chuyển chúng. –
@Neil Hoàn toàn đồng ý với bạn! –