7zip: วิธียกเว้นไฟล์ประเภทใด


9

ฉันต้องการยกเว้นประเภทไฟล์ต่อไปนี้:

  • ePub
  • ไฟล์ PDF
  • html (ตัวพิมพ์ใหญ่เช่นกัน)
  • azw3
  • Mobi
  • opf
  • txt

ฉันมีจนถึงตอนนี้ซึ่งดูเหมือนจะไม่ทำงานฉันได้รับข้อผิดพลาดว่า "บรรทัดคำสั่งไม่ถูกต้อง"

7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *

ฉันยังลองใช้คำสั่งข้างต้นโดยไม่ต้องใส่เครื่องหมายคำพูดคู่

ฉันสร้างคำสั่งด้านบนโดยใช้ข้อมูลจากที่นี่ (สำหรับ windows) แต่ดูเหมือนว่าจะไม่ทำงานภายใต้ Linux

คำตอบ:


10

7zยอมรับเฉพาะไฟล์เก็บถาวรเดียวภายในอาร์กิวเมนต์ แต่คุณส่งผ่านอักขระตัวแทนซึ่งขยายไปยังเนื้อหาทั้งหมดของไดเรกทอรีทำงานปัจจุบัน อีกประเด็นคือว่าตัวแทนในการโต้แย้งก็จะขยายตัวเช่นกันหากไม่ได้ยกมาหรืออ้างสองครั้ง

ดังนั้นคุณควรแยกไฟล์เก็บถาวรต่อคำสั่งเท่านั้น คุณควรลบไวด์การ์ดในตอนท้ายระบุไฟล์เก็บถาวรเดี่ยวและอ้างถึงอาร์กิวเมนต์เดี่ยว:

7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' archive.7z

หากต้องการแตกไฟล์เก็บถาวรหลายไฟล์พร้อมกันคุณสามารถใช้หลายวิธีได้:

  • bash:
for archive in *.7z; do 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' "$archive"; done
  • find:
find . -maxdepth 1 -type f -iname "*.7z" -exec 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' {} \;

ฉันมีคลังเก็บจำนวนมากที่ต้องการแยกดังนั้นการใช้ wildcard ในตอนท้ายเพื่อแยกเก็บถาวรทั้งหมด
daka

@sudoman คุณแน่ใจว่านี้ได้รับการสนับสนุนโดย7z? ต้องการลองเก็บถาวรหรือไม่
kos

ผ่านการทดสอบปรากฎว่า 7zip ไม่อนุญาตให้ใช้ wildcard ในการเลือกหลายไฟล์ภายในไดเรกทอรีที่กำหนด
daka

@Ron ฉันเห็นด้วย แต่ปัญหาที่นี่คือ OP ไม่สามารถแตกไฟล์เก็บถาวรได้หลายรายการพร้อมกัน แต่ upvoted โพสต์
คอส

@sudoman ฉันพบข้อผิดพลาดอื่นในคำสั่งดั้งเดิมของคุณรวมทั้งฉันได้เพิ่มสองสามวิธีในการดึงข้อมูลที่เก็บถาวรหลายรายการพร้อมกัน
kos

10

จากman 7z:

-x[r[-|0]]]{@listfile|!wildcard}
              Exclude filenames

ในการแยกไฟล์ (หรือประเภท) คุณสามารถใช้คำสั่งต่อไปนี้:

7z a -xr@exclude.txt backup.7z /whatever/dirs/or/files

แจ้งให้ทราบล่วงหน้า-xrแทน -xตัวrบ่งชี้แบบเรียกซ้ำเพื่อให้สามารถจับคู่ไฟล์ที่ถูกแยกในลำดับชั้นของโฟลเดอร์แบบลึก

ไฟล์exclude.txtนี้เป็นรายการคั่นด้วย carriage return เช่นนี้

*.epub
*.pdf
*.html 
*.HTML
*.azw3
*.mobi
*.opf
*.txt

-2

หากคุณต้องการแยกไดเรกทอรีทั้งหมด (คุณอาจแยกไฟล์ส่วนขยายนี้ไว้ในไดเรกทอรี)

 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on ~/bkpFile_$(date +"%d_%b_%Y").1.7z /home/ubuntu/projectfile -mx0 '-xr!vendor' '-xr!view' '-xr!documents' 

ที่นี่ผู้จัดจำหน่าย , มุมมองและเอกสารไดเรกทอรีได้รับการยกเว้น


1
ทำไมsudo? และสิ่งนี้จะเพิ่มคำตอบที่มีอยู่?
muru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.