Как я получаю размер файла (исходный размер файла) в .tar.gz без распаковывают его?

Я делаю myfile.txt к zip-файлу с ниже команды, есть ли способ получить исходный размер файла 'myfile.txt', не разархивировав его.

tar -czf myfile.tar.gz myfile.txt
2
задан 16 July 2018 в 09:02

3 ответа

Для получения несжатого размера zip-файла, мы можем выйти gzip с опцией --list или -l

gzip -l mytext.txt.tar.gz

, которую Это даст выводу, подобному этому

gzip -l mytext.txt.tar.gz
         compressed        uncompressed  ratio uncompressed_name
               1475                4608  68.4% mytext.txt.tar

, Чтобы иметь размер сжатого файла, несжатый размер и степень сжатия.

3
ответ дан 2 December 2019 в 02:15

Можно перечислить содержание (включая исходные размеры файла) использования файла tar:

tar -vtf myfile.tar.gz

, Если Вы только хотите myfile.txt:

tar -vtf myfile.tar.gz myfile.txt

Это только работает, если Вы добавляете полный путь к файлу, иначе используйте:

tar -vtf myfile.tar.gz | grep myfile.txt

Примечание, что tar должен будет распаковать архив для получения до информации о файле. Это однако скроет это от Вас.

при специфической необходимости в способе добраться до метаданных файла, не имея необходимость распаковывать целый архив Вы - более обеспеченная zip использования, чтобы хранить Ваши файлы и каталоги. Zip использует 'центральный каталог' в конце zip-файла, который хранит все метаданные файла.

1
ответ дан 2 December 2019 в 02:15

Я нахожу все сайтами в сети и не разрешаю эту проблему получить размер, когда размер файла больше из 4 ГБ.

во-первых, который является самым быстрее?

[oracle@base tmp]$ time zcat oracle.20180303.030001.dmp.tar.gz | wc -c
    6667028480

    real    0m45.761s
    user    0m43.203s
    sys     0m5.185s
[oracle@base tmp]$ time gzip -dc oracle.20180303.030001.dmp.tar.gz | wc -c
    6667028480

    real    0m45.335s
    user    0m42.781s
    sys     0m5.153s
[oracle@base tmp]$ time tar -tvf oracle.20180303.030001.dmp.tar.gz
    -rw-r--r-- oracle/oinstall 111828 2018-03-03 03:05 oracle.20180303.030001.log
    -rw-r----- oracle/oinstall 6666911744 2018-03-03 03:05 oracle.20180303.030001.dmp

    real    0m46.669s
    user    0m44.347s
    sys     0m4.981s

определенно, tar-xvf является самым быстрее, но ¿how для отмены выполнения после получают заголовок?

мое решение - это:


[oracle@base tmp]$  time echo $(timeout --signal=SIGINT 1s tar -tvf oracle.20180303.030001.dmp.tar.gz | awk '{print $3}') | grep -o '[[:digit:]]*' | awk '{ sum += $1 } END { print sum }'
    6667023572

real    0m1.029s
user    0m0.012s
sys     0m0.063s
0
ответ дан 2 December 2019 в 02:15

Другие вопросы по тегам:

Похожие вопросы: