Коротко говоря: инструмент GNU tar не пропускает через zip/unzip, так как всем наплевать.
Коротко говоря, исходный размер:
tar
изначально предназначался не для распаковки и сжатия файлов, а для архивирования нескольких файлов в одном большом файле. Так как люди хотели не только архивировать свои файлы, но и сжимать их, то они просто пропускали вывод tar
через любой компрессор, который принимает входной поток данных и сбрасывает результаты в файл. Прибыль!
Теперь, чтобы сделать эту задачу как можно более безболезненной, tar
решили передать внутренне генерируемые файлы инструментам сжатия, таким как gzip, lzma и т.д., которые при запуске tar
активировались специальными флагами для каждого формата. Поэтому, когда вы пытаетесь извлечь повреждённый файл через tar
, вам показывается базовая ошибка инструмента, а не tar
:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Так что, дело не в том, что tar
не распаковывает zip-файлы, а в том, что tar
не имеет возможности пропустить его через правильный инструмент, так как никто на самом деле не удосужился его реализовать, и zip уже выполнил функцию архивации файлов формата tar.
Теперь есть утилиты "все-в-одном", которые сжимают/разжимают все, что вы бросаете в них, опять же, вам нужны правильные утилиты, чтобы на самом деле это поддерживать. Если у вас их нет, инструмент не справится.
]С помощью []bash[
] 4[
mapfile -t <list
paste "${MAPFILE[@]}" | column -s $'\t' -t
]
[]для версии вопроса []вставьте {list}/PQR/A/sum[
][
mapfile -t <list
paste "${MAPFILE[@]/%//PQR/A/sum}" | column -s $'\t' -t
] ]Если все ваши файлы находятся в одной директории, просто используйте:[
] [paste * | column -s $'\t' -t
]
[]Если у вас есть список файлов, содержащий все файлы, и имя каждого файла в одной строке, не имеет специальных символов, как пробел, вы можете попробовать:[
] [paste $(printf "%s " $(cat list)) | column -s $'\t' -t
]
[][]Updated[][
] []С вашей обновленной информацией, вы можете попробовать:[
] [paste */PQR/A/sum | column -s $'\t' -t
]
[]Если ваша родительская директория содержит много файлов и директорий, которые вам не нужны, вы должны явно перечислить всю вашу директорию: [
] [paste {1MUI,2QHK,2RKF,...}/PQR/A/sum | column -s $'\t' -t
]