7zip: come escludere i tipi di file?


9

Voglio escludere i seguenti tipi di file:

  • epub
  • PDF
  • html (anche maiuscolo)
  • azw3
  • mobi
  • opf
  • testo

Ho questo finora che non sembra funzionare, ricevo un errore che dice "Riga di comando errata".

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

Ho anche provato il comando sopra senza virgolette.

Ho creato il comando sopra usando info da qui (per Windows) ma non sembra funzionare sotto Linux.

Risposte:


10

7zaccetta solo un singolo archivio nei suoi argomenti, ma stai passando un carattere jolly che si espande al contenuto completo della directory di lavoro corrente; Un altro problema è che anche i caratteri jolly all'interno degli argomenti si espandono, sia se non quotati che tra virgolette doppie.

Quindi dovresti estrarre un singolo archivio per comando; dovresti rimuovere il carattere jolly alla fine, specificare un singolo archivio e citare una volta gli argomenti:

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

Per estrarre più archivi contemporaneamente, tuttavia è possibile utilizzare più metodi:

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

Ho molti archivi che devono essere estratti, quindi l'uso del carattere jolly alla fine per estrarre TUTTI gli archivi.
— daka,

@sudoman Sei sicuro che sia supportato da 7z? Ti dispiace provare con un singolo archivio?
— kos

Testato, 7zip in realtà non consente l'uso di un carattere jolly per selezionare più file all'interno di una determinata directory.
— daka,

@Ron Sono d'accordo, ma il problema qui è che OP non può estrarre più archivi contemporaneamente; tuttavia hai votato per il tuo post
— kos

@sudoman Ho trovato un altro difetto nel tuo comando originale, inoltre ho aggiunto un paio di modi per estrarre più archivi contemporaneamente
— kos

10

Da man 7z:

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

Per escludere file (o tipi) è possibile utilizzare il seguente comando:

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

Si noti -xrinvece di -x. Il rindica ricorsiva modo che possa corrispondere file esclusi in gerarchie di cartelle profonde

Il file exclude.txtè un elenco separato da ritorni a capo come questo:

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

-2

Se si desidera escludere la directory completa (è possibile che questo file di estensione sia separato nella directory)

 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' 

Qui è stata esclusa la directory del fornitore , della vista e dei documenti .


1
Perché sudo? E cosa si aggiunge alle risposte esistenti?
— muru,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.