Получить дату создания файла запакованого в gzip'e

308

Guest
Получить дату создания файла запакованого в gzip'e

Проблема в следующем:
есть хттп сервер, на нем лежит gzip-архив, в котором есть файл. Мне нужна дата создания этого архива. Из пхп я ее получить стандартными средствами не могу. Поэтому я копирую этот файл себе на сервер, но дата создания у него при этом изменяется. А вот у файла находящего в архиве дата остается "старая" (ее можно посмотреть через Far например).
Вопрос как получить дату создания файла, который находится в архиве, при условии, что у хостера только библиотека ZLib установлена? Очень надо помогите пожалуйста.
 

predator2

Guest
попробуй выполни
gzip -lv filename.gz | grep "$filename" | awk '{print $3,$4"-"$5}'

получишь
May 6-02:03
 

308

Guest
Возвращает дату :( АРХИВА, а не внутреннего файла.
 

DoctorD

Guest
Что значит дата внутреннего файла? ... Я понимаю что дата создания файла - это дата когда он был создан физически на диске ... или нет? ... Тогда файло которое в архиве - вообще не есть файл пока ты его не распакуешь ... или нет? ...
Ну это я так, для своего общего развития ...
 

308

Guest
Для твоего сведения отвечаю файл архива имеет свою дату создания, и файл внутри архива имеет тоже свою дату, только хранится она внутри архива.
 

DoctorD

Guest
308
что значит файл хранится внутри архива!?! это просто так говорят на самом деле архив - это файл! со всякими буковками и закарючками внутри, а архиватор - такая программка при помощи которой(используя алгоритмы всякие хитрые) эти буковки и закарючки - переводятся в др. буковки и получается тот файл или те файлы которые были до этого, я думал так все и работает ...

наверное я неправ ...
 

XiMiK

Новичок
Если инфа с датой где-то хранится, то только в самом файле. Посмотри стандарт кодирования, там должно быть написано...

-~{}~ 06.10.04 10:12:

DoctorD
А как ты себе представляешь "закарючки" в файле? :)
 

DoctorD

Guest
XiMiK
я представляю их синими такими, с красными полосками ...
а вообще - у меня правильное мировосприятие в этом отношениии или нет? я по поводу дат создания
 

XiMiK

Новичок
мировосприятие по поводу дат создания?
Ты чё на колёсах? :) :) :)
 

XiMiK

Новичок
Если так дальше пойдёт, то топ в RecycleBin отправится... Чего мне очень бы не хотелось.
 

tony2001

TeaM PHPClub
308
ты не совсем понимаешь принцип работы gzip.
gzip ничего не делает, кроме архивирования _одного_ файла.
именно поэтому нужен tar, чтобы сначала много файлов склеить в один, а результат - загзиповать.
поэтому, в file.txt.gz нет никаких дат и даже имен файлов - сожми file.txt (кстати, получишь файл с той же датой создания, что и у file.txt), переименуй его в file_blah.txt.gz, распакуй. что получил? правильно, file_blah.txt.
 

308

Guest
tony2001
Складно объяснил, только как же тогда Far видит дату файла внутри архива???
 

tony2001

TeaM PHPClub
308
какого архива?
логично предположить, что берет дату создания самого архива.
 

308

Guest
tony2001
есть файл file.cvs.gz - дата 06.10.04 11:25
смотрим его внутренности через Far видим
file.cvs - дата 06.10.04 08:00
Вопрос: как мне вытащить дату файла file.cvs?
 

XiMiK

Новичок
308
ИМХО никакими пхпшными методами это сделать нельзя. А в архиве можешь полазить unpuck-ом, но сложно сказать, найдёшь ты там чего-нибудь или нет.
 

308

Guest
XiMiK
Эт почему же???
Самый крайний случай - наити то место в файле архива где хранится информация о дате создания сжатого файла.
 

SiMM

Новичок
308, почитай то, что сказал tony2001 постом выше и осознай, что для этого придётся распаковывать архив. Да, и кстати - Far не видит внутри tgz - вернее, он распаковывает gz-файл во временный каталог, а затем уже смотрит заголовки в получившемся tar'е.
 

308

Guest
SiMM
я понял что нужно использовать tar
а с какими параметрами? (я с юникс-системами на "вы")

-~{}~ 06.10.04 13:37:

SiMM
А вообще, я подозреваю что к данному вопросу tar не имеет никакого отношения, т.к. несколько файлов объеденять не надо. Т.е. есть один загзипованный файл files.cvs.gz. И ВСЕ!!! в котором сжат файл files.cvs. Причем тут tar???

-~{}~ 06.10.04 14:19:

Проблема решена распаковкой архива file.cvs.gz командой
gzip -dN file.cvs.gz
в результате чего получаем оргинальный файл file.cvs с реальной датой создания
Всем спасибо.
 

predator2

Guest
я тормоз надо было ещё добасить ключ N
gzip -lvN filename.gz | grep "$filename" | awk '{print $3,$4"-"$5}'
 
Сверху