
Básicamente quiero crear una imagen tar de una estructura de carpetas, pero no almacenar el contenido real del archivo. Entonces, cuando descomprimo el archivo, quiero obtener las carpetas originales, los nombres de los archivos, las marcas de tiempo, etc., pero todos los archivos de longitud cero en lugar del contenido del archivo original.
La intención aquí es capturar la estructura de carpetas de una carpeta gigantesca (de gigabytes de tamaño) sin crear un archivo tar de varios gigabytes.
Gracias de antemano.
Respuesta1
si tu cp
eslo suficientemente poderoso, Puedes hacerlo:
cp -a --attributes-only olddir newdir
Donde newdir
no existe (todavía) y --attributes-only
significa
Copie solo los atributos especificados del archivo de origen al destino. […]
Esto no copiará datos; Los archivos normales newdir
tendrán tamaño cero. Tenga en cuenta que necesita ser root para replicar todos los atributos (por ejemplo, propiedad), por lo que tal vez necesite sudo cp …
. En su lugar, -a
puede utilizar opciones más específicas para replicar solo los atributos que realmente necesita.
De todos modos, después de crear newdir
archivos que contengan archivos vacíos, simplemente tar
este directorio en lugar de olddir
.
Respuesta2
star
apoya esto desde hace 18 años.... prueba:
star -c -dump -meta ... | star -tv
Esto enumera todas las entradas como archivos de tipo 'm'eta...
star -c -dump -meta ... | star -C todir -xmeta
extrae todos los archivos en archivos de tamaño 0 bytes.
star -c -dump -meta ... | star -C todir -xmeta -force-hole
extrae todos los archivos como archivos del tamaño original sin datos (archivo disperso).
star
es parte de schilytools.