7zip: Làm thế nào để loại trừ các loại tệp?


9

Tôi muốn loại trừ các loại tệp sau:

  • epub
  • pdf
  • html (viết hoa quá)
  • azw3
  • mobi
  • opf
  • txt

Tôi có cái này cho đến nay dường như không hoạt động, tôi gặp lỗi khi nói "Dòng lệnh không chính xác".

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

Tôi cũng đã thử lệnh trên mà không có dấu ngoặc kép.

Tôi đã tạo lệnh trên bằng cách sử dụng thông tin từ đây (cho windows) nhưng dường như nó không hoạt động trong Linux.

Câu trả lời:


10

7zchỉ chấp nhận một kho lưu trữ duy nhất trong các đối số của nó, nhưng bạn đang chuyển một ký tự đại diện mở rộng ra toàn bộ nội dung của thư mục làm việc hiện tại; Vấn đề anothe là các ký tự đại diện trong các đối số cũng sẽ mở rộng, nếu không được trích dẫn hoặc trích dẫn kép.

Vì vậy, bạn chỉ nên trích xuất một kho lưu trữ duy nhất cho mỗi lệnh; bạn nên xóa ký tự đại diện ở cuối, chỉ định một tệp lưu trữ và trích dẫn một đối số:

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

Để trích xuất nhiều tài liệu lưu trữ cùng một lúc, tuy nhiên bạn có thể sử dụng nhiều phương pháp:

  • 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' {} \;

Tôi có rất nhiều tài liệu lưu trữ cần giải nén, do đó việc sử dụng ký tự đại diện ở cuối để trích xuất TẤT CẢ tài liệu lưu trữ.
daka 7/07/2015

@sudoman Bạn có chắc điều này được hỗ trợ bởi 7z? Tâm trí để thử với một kho lưu trữ duy nhất?
kos

Đã kiểm tra, hóa ra 7zip không thực sự cho phép sử dụng ký tự đại diện để chọn nhiều tệp trong một thư mục nhất định.
daka 7/07/2015

@Ron Tôi đồng ý, nhưng vấn đề ở đây là OP không thể trích xuất nhiều kho lưu trữ cùng một lúc; tuy nhiên đã nâng cấp bài đăng của bạn
kos

@sudoman Tôi đã tìm thấy một lỗ hổng khác trong lệnh ban đầu của bạn, cộng với tôi đã thêm một vài cách để trích xuất nhiều tài liệu lưu trữ cùng một lúc
kos

10

Từ man 7z:

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

Để loại trừ tệp (hoặc loại), bạn có thể sử dụng lệnh sau:

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

Thông báo -xrthay vì -x. Biểu thị rđệ quy để nó có thể khớp các tệp bị loại trừ trong phân cấp thư mục sâu

Các tập tin exclude.txtlà một danh sách được phân tách bằng trả về vận chuyển như thế này:

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

-2

Nếu bạn muốn loại trừ thư mục đầy đủ (bạn có thể tách tệp mở rộng này trong thư mục)

 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' 

Ở đây, nhà cung cấp , xem và thư mục tài liệu đã được loại trừ.


1
Tại sao sudo? Và điều này thêm gì vào câu trả lời hiện có?
muru
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.