¿Cómo deshabilito la exploración de directorios 7-Zip para directorios que no están destinados a ser comprimidos y agregados al archivo?

4

7-Zip es una herramienta increíble, pero a veces funciona de manera extraña. Considere el siguiente D:\dirdiseño de directorio :

foo   <DIR>
bar   <DIR>
baz   <DIR>
empty <DIR> -- this directory is empty by intention

Ahora al ejecutar los siguientes comandos:

>D:
>cd D:\dir
>7z a -r -bb3 -mx9 -mmt -ms empty.7z empty
7-Zip [64] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04

Scanning the drive:
    0M Scan foo\bar\baz

Por alguna razón, 7-Zip escanea directorios que no son relevantes para el proceso de compresión. Esto es relevante para 7-Zip [64] 16.04, pero funcionó así en versiones mucho más antiguas. No estoy seguro si también es reproducible en Linux.

¿Cómo deshabilito el escaneo y hago que 7-Zip analice el directorio especificado solo de forma recursiva?


Editar

Igor Pavlov, el creador de 7-Zip, me ha aclarado amablemente cómo 7zfunciona para tal escenario.

Lyubomyr Shaydariv
fuente
No se pudo reproducir en Windows.
¿Son sus directorios "no relevantes" lo suficientemente grandes como para que 7zpueda tomar algún tiempo escanearlos? ¿Qué sucede si intenta archivar un directorio vacío, por ejemplo C:\7ztest, desde la raíz de su unidad C?
Lyubomyr Shaydariv
¡Ajá! Ahora lo estoy viendo. Tal vez deberías presentar un informe de error.
@FleetCommand Interesante. Apuesto a que 7z funcionó así incluso para versiones mucho más antiguas (si no me equivoco, usé una versión de 2010 antes de 16.0.4), y es difícil creer que Igor Pavlov no sea consciente de este comportamiento. Consideraré un informe de error, gracias.
Lyubomyr Shaydariv

Respuestas:

4

Estaba haciendo la misma pregunta en los foros oficiales de 7-Zip, y recibí la respuesta de Igor Pavlov. Me gustaría obtener la respuesta de Igor en el sitio, pero parece que no tiene una cuenta aquí. Sugiere simplemente eliminar el -rinterruptor, ya que 7zutiliza la búsqueda recursiva por defecto:

Su comando busca archivos o carpetas vacías en todas las subcarpetas.
Retire el -rinterruptor.

http://7-zip.org/faq.html

Aquí está el extracto respectivo de las preguntas frecuentes oficiales:

¿Por qué el interruptor -r no funciona como se espera?

En la mayoría de los casos no necesita el interruptor -r. 7-Zip puede comprimir subcarpetas incluso sin el interruptor -r.

Ejemplo 1:
7z.exe a c:\a.7z "C:\Program Files"
comprime "C: \ Archivos de programa" completamente, incluidas todas las subcarpetas.

Ejemplo 2:
7z.exe a -r c:\a.7z "C:\Program Files"
busca y comprime "Archivos de programa" en todas las subcarpetas de C: \ (por ejemplo, en "C: \ WINDOWS").

Si necesita comprimir solo archivos con alguna extensión, puede usar el modificador -r:
7z a -r c:\a.zip c:\dir\*.txt
comprime todos los archivos * .txt de la carpeta c: \ dir \ y todas sus subcarpetas.

Lyubomyr Shaydariv
fuente