7zip: วิธีการแยกไปยังเอาต์พุตมาตรฐาน?


28

ฉันมี 7z 4.65 และฉันพยายามที่จะแยกไฟล์เดียวไปยังเอาต์พุตมาตรฐาน ความช่วยเหลือในบรรทัดคำสั่ง 7z บอกว่า-soเป็นพารามิเตอร์บรรทัดคำสั่งเพื่อแยกไปยังเอาต์พุตมาตรฐาน แต่เมื่อฉันลองทำสิ่งนี้:

>>> 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Error:
I won't write data and program's messages to same terminal

ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ดูเหมือนจะไม่มีพารามิเตอร์บรรทัดคำสั่งเพื่อยับยั้งข้อความ 7z stdout ปกติ

(แก้ไข: การดำเนินการเทียบเท่าใน "unzip" จะเป็น

unzip -p dist\dlogpkg.jar META-INF/MANIFEST.MF

ซึ่งใช้งานได้ดี แต่ฉันต้องการใช้ 7z ด้วยเหตุผลหลายประการ)

คำตอบ:


17

ไปป์กับโปรแกรมอื่นเช่น

  • ที
  • น้อยกว่า
  • มากกว่า

ฉันคิดว่าteeมาใกล้เคียงกับสิ่งที่คุณต้องการมากที่สุดมันลดขนาด 7z และให้เนื้อหา

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee

มีเหตุผลใดเป็นพิเศษไหมที่ทำให้คุณคิดว่าteeดีกว่าในสถานการณ์นี้less?
Andy

แปลก "น้อยกว่า" และ "tee" ทำในสิ่งที่ฉันคาดหวัง แต่ "มากกว่า" ออกจากใน 7z stuff .... แปลกประหลาด! ทำไมถึงทำเช่นนี้?
Jason S

@ แอนดี้: "ที" ไม่แม้แต่น้อย "น้อย" .. ไม่มีการเลื่อนกลับ ฯลฯ มันแค่ปล่อยให้ไบต์ผ่านและไม่มากไปกว่านั้น
akira

@akira บางทีเขาอยากจะท่อที่ส่งออกไปยังโปรแกรมอื่น
beppe9000

@ แอนดี้: ทำไม OP ต้องการไปป์เพื่อ stdout ไม่เคยมีคำถาม
akira

8

ใน Windows 7z x -so my_file.zip 2> NULไม่ทำงาน แต่การเปลี่ยนเส้นทางไปยังไฟล์จริงช่วย:

7z x -so my_file.zip 2> _garbage.txt

7

ฉันก็พยายามจะคิดออก สิ่งนี้ทำให้ฉันได้สิ่งที่ฉันต้องการ:

7z x -so my_file.zip 2> /dev/null

1
การเทียบเท่าของ Windows 7z x -so my_file.zip 2> NULไม่ทำงาน: จะเปลี่ยนเส้นทางข้อมูลเป็นโมฆะ
ansgri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.