Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > perl и gzip |
Автор: worsvch 2.11.2013, 10:46 |
Пишу скрипт на perl, который использует модуль IO::Compress::Gzip. Скрипт сжимает файлы в формат gz. Но только вот проблема: 1. В gz архиве сохраняется вся вложенность каталогов. К примеру, пусть файлы расположены в каталоге c:\files\01_11_2013\ Дак вот в gz архиве они сохраняют всю эту вложенность, то есть в нем также присутствуют каталоги files и 01_11_2013, хотя надо чтобы вложенность отсутствовала и в архиве были только файлы без каталогов 2. Не могу разобраться, как сделать так, чтобы оригинальные файлы сразу удалялись. В линуксе, например, можно сделать просто: gzip file, результатом выполнения которой будет file.gz, а файла file не останется Просьба помочь разобраться |
Автор: arto 2.11.2013, 10:57 |
1. не понял проблему. gzip не архиватор, а компрессор. 2. perldoc -f unlink |
Автор: worsvch 2.11.2013, 11:05 | ||
1. Внутри gz-файла файлы лежат так: \files\01_11_2013\file1.dat \files\01_11_2013\file2.dat \files\01_11_2013\file3.dat и т.д. а надо, чтобы: file1.dat file2.dat file3.dat То есть, чтобы модуль IO::Compress::Gzip не сохранял пути. 2. Про unlink я в курсе, может ли модуль IO::Compress::Gzip удалять оригинальные файлы после сжатия в gz? |
Автор: arto 2.11.2013, 12:05 |
1. покажите код, как вы это делаете. 2. если в документации нет, то нет. |
Автор: worsvch 2.11.2013, 12:23 | ||
Часть кода, в которой отрабатывает gzip
|
Автор: arto 4.11.2013, 08:50 |
из приведенного кода не следует, что в .gz файле лежат несколько других файлов |
Автор: worsvch 5.11.2013, 09:36 | ||
Не следует, но каждый файл лежит внутри нескольких папок, а надо чтобы открыл gz файл а там сразу файл который сжимал, а получается, что открываешь архив, например в 7-zip, а там папка и чтобы добраться до файла нужно пройти через несколько папок, прежде чем доберешься до самого файла |
Автор: arto 5.11.2013, 11:31 |
ну так и выводите его туда, куда вам надо: => "/tmp/$_.gz". это к модулю не относится. |
Автор: worsvch 5.11.2013, 13:25 | ||
Именно так и делаю, дак вот в этом и проблема, так как каталог tmp тоже окажется в файле gz, а нужен только сам файл без каталогов, то есть чтобы пути не сохранялись в архиве |
Автор: Pfailed 5.11.2013, 18:27 |
опцию Name из документации попробуйте |
Автор: worsvch 9.11.2013, 14:48 | ||
Сделал по другому, использовал chdir и там уже запускал gzip, результат был, который хотел |
Автор: MikaGold 14.11.2013, 19:55 |
Да уж, для меня всегда сложновато это все было. Разбираете четко, опыт) |