Saltar al contenido

7Zip – Línea de comando: ¿Excluir carpeta (s) por patrón de comodín?

Solución:

Para excluir el compartimiento y obj carpetas de forma recursiva puede utilizar el comando:

7z.exe a -t7z archive.7z FolderToArchive -mx0 -xr!bin -xr!obj

Para evitar errores, use -r o -xr con cuidado.

suponga que tiene directorios como:

.path1path2bin
.path1path2src
.path3path4path5bin
.path3path4path5src

y ejecuta el comando:

7z a -t7z archive.7z .path1path2 .path3path4path5 -xr!bin

lo que tienes en archive.7z:

.path2src
.path5src

Eso es el .path2 y .path5 se convirtió en el carpeta superior en archive.7z, y tanto bin Se excluyeron los directorios.

-x solo admite ruta / nombre de archivo relativo a la carpeta superior del archivo.

Entonces, si solo desea excluir .path1path2bin, pero para incluir todos los demás directorios ‘bin’, el comando debería ser así:

7z a -t7z archive.7z .path1path2 .path3path4path5 -x!path2bin

Intenté usar la ruta absoluta en -x, pero nunca tuve éxito.


Actualizar:

Hay una opcion -spf en 7z para Linux que funciona con ruta absoluta.

Según Marco, -spf también está disponible en Windows a partir de 7-zip 15.14

Basado en la respuesta de @ zhazha y aclare cómo excluir exactamente las subcarpetas. En Windows 10, para hacer una copia de seguridad de la carpeta raíz de una solución de Visual Studio:

D:VS2019Sln1

luego:

//goto the parent of the root folder first which make thing clearer
//not sure what will happen if you go into the root folder
cd D:VS2019
"<path-of-7z>7z.exe" a -tzip -mx0 Sln1_backup.zip Sln1 -x!Sln1.vs -x!Sln1Debug -x!Sln1Release -x!Sln1lib -x!Sln1Project1x64 -x!Sln1Project2obj

Entonces puede estar seguro de que solo se excluyen las subcarpetas especificadas, por ejemplo, Sln1 Project3 obj o Sln1 Project4 lib no se excluirán involuntariamente. Funciona para la enorme carpeta oculta .vs.

-mx0 significa archivo / sin compresión.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *