Как создать пакет tar.gz без корневого каталога? - PullRequest
0 голосов
/ 21 января 2019

Мне нужно создать пакет tar.gz без корневого каталога.Теперь у меня есть дерево: введите описание изображения здесь

Пример результата: введите описание изображения здесь

Я использовал задачу Gradle, которая создала tar.gzпакет с каталогом cfg:

plugins.withType(DistributionPlugin) {
    distTar() {
        into('cfg') { from 'cfg' }
            compression = Compression.GZIP
            extension = 'tar.gz'
    }
}

1 Ответ

0 голосов
/ 21 января 2019

Если вам нужно удалить каталог корневого уровня из созданного архива, вы можете использовать Tar.eachFile API для изменения / изменения путей к целевым файлам следующим образом:

distTar {
    // Alter file path to remove root level directory
    eachFile { file ->
        String path = file.relativePath
        file.setPath(path.substring(path.indexOf("/")+1, path.length()))
    }
}

(Я не нашел ни одного метода или свойства в API задач Tar, чтобы реализовать это лучше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...