Estoy a punto de comprimir un directorio grande y quiero saber qué tan grande, exactamente, será el archivo resultante.
He intentado usar du:
$ tar -cv dir | du -h -
du: cannot access '-': No such file or directory
Luego intenté usar la versión del archivo de '-':
$ tar -cv dir | du -h /dev/stdin
1.0K
Estoy seguro de que este número no es exacto. ¿Cómo puedo obtener el tamaño de stdin?

wcsuperfluo,-entonces tampoco necesita elcutcomando posterior .Con GNU
tarsolo puedes hacer:... que generará resultados como ...
... en stderr. Del mismo modo, con cualquier tar (o secuencia) que pueda usar
ddpara entregar un informe sobre el recuento de bytes. Esto puede ser preferible o nowc, pero el valorddpredeterminado es un tamaño de bloque de 512 bytes, que es idéntico altartamaño de bloque de. Si el PIPE_BUF de su sistema es lo suficientemente grande, incluso puede expandirddel tamaño de bloque para que coincida contarel tamaño de registro, que es de 20 bloques o 10240 bytes. Me gusta esto:Esto puede o no ofrecer una solución más eficaz que
wc.En los dos
ddytarlos casos de uso que no necesita realmente deshacerse de la corriente, sin embargo. Redirijo a lo/dev/nullanterior, pero podría haber redirigido fácilmente a algún archivo y aún recibir el informe sobre su tamaño en el momento en que se escribió.fuente
dd(en comparación conwc).ddla salida se transmite, por ejemplo, a un compresor, y por cualquier razón, le resulta deseable conocer tanto el tamaño sin formato del archivo como el comprimido. También es útil obtener un informe instantáneo sobre los recuentos de registros,tarno es solo un archivo, sino un formato continuo. Se puede usar de otras maneras que no sea simplemente guardar en un grupo de archivos en otro archivo. A menudo es útil para bloquear una secuencia antes de modificarla. En cada uno de esos límites de registro hay un bloque completo de NUL.Sugeriría:
Se usa un simple
c(no-se requiere el inicio) para crear untararchivo,fespecifica un archivo de salida y-denota que es stdout . (Tenga en cuenta que si quieres sólo el tamaño y hay muchos archivos por debajo de dir es posible que en lugar de omitirtar'svpor razones de rendimiento.)fuente
tars en el pasado donde se requería especificar un archivo tar (asífy-). - Solo lo busqué; sinf-eltarsupuesto/etc/mt0por defecto./etc/mt0realmente significa: "cinta magnética" ;-) Me interesaría cómo setarcomporta Solaris (porque Solaris es uno de los sistemas operativos contemporáneos que se sabe que todavía tiene cosas realmente viejas/bin).-fbandera atar?La redacción de su pregunta se presta a las
tar ... | wc -crespuestas anteriores. Originalmente leí su pregunta con una suposición silenciosa de que deseaba que se informara el tamaño mientras creaba el archivo tar (¿tal vez la salida de tar se canalizaba a través de un enlace de red?).En cuyo caso, sugeriría
pv: visor de tuberías. He visto referencias a él, pero aún no he tenido la oportunidad de jugar con él.Referencias
fuente