Подтвердить что ты не робот

Извлеките файлы, содержащиеся в файле archive.tar.gz, в новый каталог с именем archive

У меня есть каталог, содержащий около 800.tgz-архивов, каждый из которых содержит около 10 файлов. Фактически, я хочу конвертировать каждый архив в каталог с тем же именем. Есть ли простая одна строка для этого, или я должен написать script?

4b9b3361

Ответ 1

Думаю, вам понадобится script. Вы можете указать каталог, в который находится выдержка, используя параметр tar -C.

В приведенном ниже script предполагается, что каталоги не существуют и должны быть созданы. Если каталоги действительно существуют, script все равно будет работать - mkdir просто провалится.

tar -xvzf archive.tar.gx -C archive_dir

например.

for a in *.tar.gz
do
    a_dir=`expr $a : '\(.*\).tar.gz'`
    mkdir $a_dir 2>/dev/null
    tar -xvzf $a -C $a_dir
done

Ответ 2

Хорошо, если вы запустите $ tar -zxf some-archive.tar.gz -C . (обратите внимание на точку в конце), новый каталог с именем some-archive/ будет создан в каталоге, в котором вы сейчас находитесь.

Возможно, это то, что вы имели в виду по вашему вопросу? Это то, что я обычно хочу, чтобы он мог работать и для вас.