7zip: Bagaimana cara mengecualikan jenis file?


9

Saya ingin mengecualikan jenis file berikut:

  • Epub
  • pdf
  • html (huruf besar juga)
  • azw3
  • mobi
  • opf
  • txt

Saya punya ini sejauh ini yang tampaknya tidak berhasil, saya mendapatkan pesan kesalahan "Baris Perintah Salah".

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

Saya juga mencoba perintah di atas tanpa tanda kutip ganda.

Saya membuat perintah di atas menggunakan info dari sini (untuk windows) tetapi sepertinya tidak berfungsi di Linux.

Jawaban:


10

7zhanya menerima arsip tunggal dalam argumennya, tetapi Anda memberikan wildcard yang diperluas ke konten lengkap direktori kerja saat ini; Masalah lain adalah bahwa wildcard dalam argumen akan berkembang juga, baik jika tidak dikutip atau dikutip ganda.

Jadi, Anda hanya perlu mengekstrak arsip tunggal per perintah; Anda harus menghapus wildcard di bagian akhir, tentukan satu arsip dan kutip-tunggal argumen:

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

Untuk mengekstrak banyak arsip sekaligus, Anda dapat menggunakan beberapa metode:

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

Saya memiliki banyak arsip yang perlu diekstraksi, karenanya penggunaan wildcard pada akhirnya untuk mengekstrak SEMUA arsip.
daka

@sudoman Apakah Anda yakin ini didukung oleh 7z? Pikiran untuk mencoba dengan arsip tunggal?
kos

Diuji, ternyata 7zip tidak benar-benar memungkinkan penggunaan wildcard untuk memilih beberapa file dalam direktori yang diberikan.
daka

@ Aku setuju, tapi masalahnya di sini adalah OP tidak bisa mengekstraksi banyak arsip sekaligus; Namun upvoted posting Anda
kos

@sudoman Saya telah menemukan kesalahan lain dalam perintah asli Anda, ditambah saya menambahkan beberapa cara untuk mengekstrak beberapa arsip sekaligus
kos

10

Dari man 7z:

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

Untuk mengecualikan file (atau jenis) Anda dapat menggunakan perintah berikut:

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

Perhatikan -xrbukan -x. Ini rmenunjukkan rekursif sehingga dapat mencocokkan file yang dikecualikan dalam hierarki folder yang dalam

File exclude.txtadalah daftar yang dipisahkan oleh carriage return seperti ini:

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

-2

Jika Anda ingin mengecualikan direktori lengkap (Anda mungkin memiliki file ekstensi ini dipisahkan dalam direktori)

 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' 

Di sini, vendor , view , dan direktori dokumen telah dikecualikan.


1
Mengapa sudo? Dan apa yang ini tambahkan ke jawaban yang ada?
muru
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.