Вы можете использовать node.js и tar-to-zip для этой цели. Все, что вам нужно сделать, это:
Установите файл node.js с nvm , если у вас его нет.
А затем установите tar-to-zip
с помощью:
npm i tar-to-zip -g
И используйте его с:
tarzip *.tar.gz
Также вы можете программно конвертировать .tar.gz
файлы в .zip
.
Вы должны установить async
и tar-to-zip
локально:
npm i async tar-to-zip
А затем создайте converter.js
с содержимым:
#!/usr/bin/env node
'use strict';
const fs = require('fs');
const tarToZip = require('tar-to-zip');
const eachSeries = require('async/eachSeries');
const names = process.argv.slice(2);
eachSeries(names, convert, exitIfError);
function convert(name, done) {
const {stdout} = process;
const onProgress = (n) => {
stdout.write(`\r${n}%: ${name}`);
};
const onFinish = (e) => {
stdout.write('\n');
done();
};
const nameZip = name.replace(/\.tar\.gz$/, '.zip');
const zip = fs.createWriteStream(nameZip)
.on('error', (error) => {
exitIfError(error);
fs.unlinkSync(zipPath);
});
const progress = true;
tarToZip(name, {progress})
.on('progress', onProgress)
.on('error', exitIfError)
.getStream()
.pipe(zip)
.on('finish', onFinish);
}
function exitIfError(error) {
if (!error)
return;
console.error(error.message);
process.exit(1);
}