Чтобы создать файл tar.gz из каталога, вы можете использовать различные методы в зависимости от предпочитаемого вами языка программирования. Вот несколько примеров на разных языках:
-
Python:
import tarfile def create_tar_gz(directory_path, output_file_path): with tarfile.open(output_file_path, "w:gz") as tar: tar.add(directory_path, arcname="") # Usage example create_tar_gz("/path/to/directory", "/path/to/output.tar.gz")
-
Bash (Linux/Unix):
tar -czvf output.tar.gz /path/to/directory
-
Java (с использованием библиотеки Apache Commons Compress):
import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class TarGzCreator { public static void createTarGz(String directoryPath, String outputFilePath) throws IOException { FileOutputStream fos = new FileOutputStream(outputFilePath); TarArchiveOutputStream tarOs = new TarArchiveOutputStream(new GZIPOutputStream(fos)); File directory = new File(directoryPath); addFilesToTarGz(tarOs, directory, ""); tarOs.finish(); tarOs.close(); } private static void addFilesToTarGz(TarArchiveOutputStream tarOs, File file, String parentDir) throws IOException { String entryName = parentDir + file.getName(); TarArchiveEntry tarEntry = new TarArchiveEntry(file, entryName); tarOs.putArchiveEntry(tarEntry); if (file.isFile()) { FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = fis.read(buffer)) != -1) { tarOs.write(buffer, 0, bytesRead); } fis.close(); tarOs.closeArchiveEntry(); } else if (file.isDirectory()) { tarOs.closeArchiveEntry(); File[] children = file.listFiles(); if (children != null) { for (File child : children) { addFilesToTarGz(tarOs, child, entryName + "/"); } } } } // Usage example public static void main(String[] args) throws IOException { createTarGz("/path/to/directory", "/path/to/output.tar.gz"); } }
Это всего лишь несколько примеров того, как можно создать файл tar.gz из каталога, используя разные языки программирования. Выберите тот, который соответствует вашим требованиям и среде программирования.