Распакуйте файл tar в каталог - PullRequest
5 голосов
/ 06 сентября 2011

Я пытаюсь распаковать файл tar в каталог, но понятия не имею, как. Я могу извлечь его в тот же каталог, что и файл tar, но не в другую папку.

$filename = "homedir.tar";
exec("tar xvf $filename");

Пробовал следующее, но оно не работает (ничего не извлекается):

exec("tar -C, homedir zxvf $filename");

Обновление:

Это содержимое моего файла:

# Absolute paths
$filepath = "/home/acc/public_html/test/test/homedir.tar";
$folderpath = "/home/acc/public_html/test/test/homedir";

# Check if folder exist
if(!is_dir($folderpath)) {
    die('Folder does not exist');
}

# Check if folder is writable
if(!is_writable($folderpath)) {
    die('Folder is not writable');
}

# Check if file exist
if(!file_exists($filepath)) {
    die('File does not exist');
}

exec("tar -C $folderpath -zxvf $filepath");

Нет ошибок, но ничего не распаковывается.

1 Ответ

3 голосов
/ 07 сентября 2011

Удалите запятую из -C и добавьте тире перед zxvf:

exec("tar -C $outdir -zxvf $infile");

Или вы можете поставить часть -C на конце, и вам не нужна черта перед zxvf:

exec("tar zxvf $infile -C $outdir");

И вам, вероятно, следует убедиться, что ваши пути абсолютны, просто чтобы быть уверенным.

...