Основы работы с архивами в Linux: Утилита Untar
Команда untar (или tar -xf) используется для распаковки (и архивирования) файлов в формате tar. Tar - это пакетный файловый формат, который используется в UNIX-подобных операционных системах для объединения нескольких файлов и/или каталогов в один файл.
Примеры кода для распаковки файла tar:
1. Использование команды untar в командной строке:
bash
tar -xf archive.tar
В этом примере файл archive.tar будет распакован в текущий каталог.
2. Использование функции untar в языке программирования Python:
python
import tarfile
def untar(file_path, destination):
try:
with tarfile.open(file_path, "r") as tar:
tar.extractall(destination)
except:
print("Ошибка при распаковке файла")
# Пример использования функции
untar("archive.tar", "/path/to/destination")
В этом примере функция untar принимает путь к файлу архива и путь к каталогу назначения. Файл архива распаковывается в указанный каталог.
3. Использование модуля tarfile в языке программирования Java:
java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
public class UntarExample {
public static void untar(String filePath, String destination) {
try (TarArchiveInputStream tarInput = new TarArchiveInputStream(new FileInputStream(filePath))) {
TarArchiveEntry entry;
while ((entry = tarInput.getNextTarEntry()) != null) {
Path outputPath = Paths.get(destination, entry.getName());
if (entry.isDirectory()) {
outputPath.toFile().mkdirs();
} else {
outputPath.getParent().toFile().mkdirs();
try (FileOutputStream output = new FileOutputStream(outputPath.toFile())) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = tarInput.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
untar("archive.tar", "/path/to/destination");
}
}
В этом примере класс UntarExample содержит статический метод untar, который принимает путь к файлу архива и путь к каталогу назначения. Файл архива распаковывается в указанный каталог.