2014-04-27 2 views
3

Я хотел бы создать файл .tar из всех .gz файлов в $a/$b и удалить эти файлы впоследствии.создать файл tar из некоторого файла .tar.gz

Я придумал следующий код, но он не работает:

cd "$a" 
#tar cf $a/$b'.tar' "$b_sql.gz" "$b_moh.tar.gz" 
tar cf $a/$b'.tar' $b'_*.gz' 
gzip $a/$b'.tar' 
rm -f $b'_*.gz' 
+0

http://chat.stackoverflow.com/rooms/70243/farsi-programming-discussion – Kasramvd

ответ

3

Я стараюсь так и ответить:

cd "$a" 
for f in $b'_*.gz' 
do 
    tar cf $a/$b'.tar' $f 
done 
+1

Namordim o ye irani didim inja – scripter

+0

http://chat.stackoverflow.com/rooms/70243/persian-programming -discussion –

2

Проблема с вашим использованием * в строке. Он обрабатывает * как символ, а не делает глобус в оболочке.

Вы можете проверить это самостоятельно, запустив ls *.gz, а затем ls '*.gz' в вашей оболочке.

+0

Так что я должен сделать для этого? –

+1

Наверное, лучше всего в этом ответе переполнения стека. http://stackoverflow.com/questions/369145/how-to-glob-variables-in-bash-script –

Смежные вопросы