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.