Sé que puede crear un archivo de texto que contenga una lista de archivos y luego decirle a 7zip que haga referencia a este archivo para que pueda excluirlos del archivo, pero no puedo encontrar la sintaxis para eso. Alguien puede ayudar?
Sé que puede crear un archivo de texto que contenga una lista de archivos y luego decirle a 7zip que haga referencia a este archivo para que pueda excluirlos del archivo, pero no puedo encontrar la sintaxis para eso. Alguien puede ayudar?
Respuestas:
Después de algunas horas de búsqueda, finalmente lo descubrí. Aquí está la sintaxis del interruptor:
7z a -xr@exclude.txt backup.7z c:\whatever\*
Aviso en -xr
lugar de -x
. El r
indica recursiva para que pueda coincidir con los archivos excluidos en las jerarquías de carpetas de profundidad. Además, el formato del archivo de texto puede ser al menos ANSI o UTF-8.
En cuanto al archivo que contiene los archivos, como dijo OldWolf, es una lista separada por retornos de carro como este:
Telerik.Reporting.dll
Telerik.Reporting.Service.dll
Telerik.ReportViewer.WebForms.dll
Telerik.Web.Design.dll
Telerik.Web.UI.dll
*.txt
Funciona de maravilla.
Creo que quieres el modificador -x con @
7z a -t7z my.zip * -x@myexclusion.lst
En retrospectiva, me di cuenta de que puede haber querido decir que quería la sintaxis para el archivo de lista. Debería ser una lista separada por una nueva línea. Es posible que se encuentre con un problema de codificación. 7z espera que esté en formato UTF-8, puede anularlo con el modificador -scs o puede indicarle al bloc de notas que guarde el archivo en formato UTF-8
Si su lista va a ser realmente corta, puede tener más de un indicador -x:
7z a -r CppSourceJBR.zip * .cpp .h -x! Stdafx. -x! targetver.h
Por cierto, durante la prueba tuve que seguir eliminando el archivo .zip. Cuando lo olvidé, por ejemplo, targetver.h todavía estaba en el ZIP de la última ejecución.
r
opción. Esta es la forma correcta de excluir archivos PNG de forma recursiva en bash (comillas simples para evitar que bash se expanda!
y*
):-xr'!*.png'
(editar: comillas simples en lugar de escape)