В вашем случае использования pg_dump
создает только один файл, который необходимо сжать. Как уже отмечали другие, в * nix land архив - это отдельный файл, представляющий файловую систему. В соответствии с идеологией Unix один инструмент на задачу , сжатие является отдельной задачей от архивирования. Поскольку архив - это файл, он может быть сжат, как и любой другой файл. Поэтому, поскольку вам нужно сжать только один файл, tar не нужен, поскольку другие уже правильно указали.
Однако ваш заголовок и теги приведут сюда будущих читателей, которые могут ожидать следующего ...
Допустим, у вас есть целая папка, полная резервных копий PostgreSQL для архивирования и сжатия. Это все еще должно быть сделано целиком с использованием tar, поскольку его -z
или --gzip
flag вызывает инструмент gzip .
Итак, давайте также скажем, что вам необходимо зашифровать архивы базы данных, чтобы подготовить их к перемещению в сомнительно защищенное решение для резервного копирования за пределы площадки (такое как S3-совместимое хранилище объектов). Предположим, вам нравится шифрование с предварительным общим токеном (паролем) с использованием шифра AES.
Это может быть допустимая ситуация, когда вам может потребоваться передать данные в tar и из tar.
Архив -> Сжать -> Зашифровать
tar cz folder_to_encrypt | openssl enc -aes-256-cbc -e > out.tar.gz.enc
Расшифровать -> Распаковать -> Извлечь
openssl enc -aes-256-cbc -in ./out.tar.gz.enc -d | tar xz --null
Обратитесь к документации GNU tar для подробностей о том, как флаг --null
работает, и других полезных примеров для других ситуаций, когда вам может понадобиться передать файлы в tar. 1030 *