Распакуйте Z файлы, а затем удалите файлы после в сценарии - PullRequest
0 голосов
/ 08 февраля 2012

Я хотел бы распаковать Z-файлы в каталоге, а затем удалить их (но сохранить исходные Z-файлы). Каков наилучший способ сделать это?

Спасибо!

РЕДАКТИРОВАНИЕ: Если файлы Z удаляются после распаковки, как я могу их сжать - их довольно много. Идея: возможно ли распаковать файлы в папку, а затем просто сжать эту папку обратно в Z-файл?

1 Ответ

2 голосов
/ 08 февраля 2012

Unix uncompress автоматически удаляет сжатый файл, когда файл распакован.Если вы хотите сохранить сжатый файл и распаковать его, создайте копию файла и распакуйте эту копию:

#!/bin/sh

for file in *.Z; do

echo $file

#copy to temporary file and uncompress
cp $file tmp.Z
uncompress tmp.Z

#rename uncompressed temp file to match original name
mv ${file%.*} $file

done

Обратите внимание, что compress может работать только с одним файлом одновременно.Если вам нужно сжать несколько файлов вместе, вы можете использовать tar.Например, вы можете изменить приведенный выше скрипт следующим образом:

#!/bin/sh

mkdir tmp

for file in *.Z; do
mv $file tmp/
uncompress tmp/$file
done

tar -cf files.tar tmp/*
compress files.tar
rm -r tmp

Этот скрипт теперь делает следующее:

1) создает временный каталог под текущим 2) распаковывает все .Zфайлы в этот каталог 3) удаляет все файлы .Z (uncompress делает это автоматически) 4) объединяет все файлы вместе в files.tar архив 5) сжимает архив в files.tar.Z 6) удаляет несжатые файлы и временный каталог

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