Untar без каталога верхнего уровня

Похоже, что Вы ищете 'out_fname =', не просто 'out_fname'.

Я или сделал бы это в соединении awk и оболочки или в Python. В awk/shell:

awk '{for(i=0;i<NF;i++) {if (index($i, 'out_fname=')) {split($i,A,/=/);print A[i]}}' "$@" |
    while read filename; do
        if [ ! -f $filename ]; then echo $filename; fi
    done > stillneed.txt

В Python:

import fileinput, os
stillneed = open("stillneed.txt", "w")
for line in fileinput.input():
    for filename in [l.split('=')[1] for l in line.split() if l.find('out_fname=')!=-1]:
        if not os.path.exists(filename):
            print >>stillneed, filename
3
11.02.2013, 20:52
1 ответ

Можно использовать -C опция в некоторых реализациях tar для определения основного пути для извлечения. Следующее будет работать на Ваш пример.

tar -xvz -C /local -f websites.tgz

Или если Ваш tar не имеет -z или -C опции:

gunzip < websites.tgz | (cd /local && tar xvf -)
5
27.01.2020, 21:17

Теги

Похожие вопросы