URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 35957
[ Назад ]

Исходное сообщение
"OpenNews: Обновление GNU tar 1.16"

Отправлено opennews , 11-Ноя-06 22:58 
После нескольких лет разработки выпущена новая версия GNU  tar 1.16 (http://www.gnu.org/software/tar/).


Главным новшеством является несовместимое с прошлыми версиями изменение алгоритма обработки спецсимволов в именах файлов.
Например, для команды "tar xf foo.tar '*.c'" прошлые версии gnu tar извлекали из архива все файлы заканчивающиеся на ".c", начиная с версии 1.16 будет извлечен только файл с именем "*.c" (работа с масками прекращена, для включения прежнего режима введены (http://lists.gnu.org/archive/html/bug-tar/2006-06/msg00001.html) опции "--wildcards", "--anchored", "--ignore-case" и "--wildcards-match-slash").


Кроме того, появились новые опции (http://cvs.savannah.gnu.org/viewcvs/tar/NEWS?rev=1.125&root=...):

-  --transform - преобразование имен перед помещением в архив, например: tar cf foo.tar --transform 's,^,prefix/,'.
-  --mtime - позволяет изменить время модификации для файлов в архиве;
-  В командной строке теперь можно задавать несколько -T (--files-from) опций подряд, причем в файлах задаваемых через опцию -T могут быть заданы другие опции tar.
-  --no-unquote - запрещает проверку на уникальность файла перед включением его в архив;
-  --to-command - передача вывода команды tar через pipe заданной программе;
-  --delay-directory-restore - восстановление атрибутов директорий после распаковки всех файлов из архива;

URL: http://freshmeat.net/projects/tar/?branch_id=17853&release_i...
Новость: http://www.opennet.ru/opennews/art.shtml?num=8800


Содержание

Сообщения в этом обсуждении
"Обновление GNU tar 1.16"
Отправлено Dyr , 11-Ноя-06 22:58 
>Главным новшеством является несовместимое с прошлыми версиями изменение алгоритма обработки спецсимволов в именах файлов.
Ну и вот нахрена так делать? Какому идиоту пришла в голову такая идея? Добавили бы флаг "не рассматривать как wildcard", и тогда можно было бы сохранить совместимость со старым вариантом, использующимся в тысячах скриптах, и было бы им "новшество". Пипец, новоманы, мля.

"Обновление GNU tar 1.16"
Отправлено Аноним , 11-Ноя-06 23:18 
>Ну и вот нахрена так делать? Какому идиоту пришла в голову такая
>идея? Добавили бы флаг "не рассматривать как wildcard", и тогда можно
>было бы сохранить совместимость со старым вариантом, использующимся в тысячах скриптах,
>и было бы им "новшество". Пипец, новоманы, мля.

Думать надо было раньше, когда вилдкартами в gnu tar сломали совместимость с классическим tar.
Будет хорошим уроком писателям скриптов под не под tar, а под gnu tar.


"Обновление GNU tar 1.16"
Отправлено Damon , 12-Ноя-06 08:30 
Хм, а в рук-вах написано, что "*" не программа разворачивает, а оболочка (shell)... В новости шаблон "*.c" взят дополнительно в одинарные кавычки ("tar xf foo.tar '*.c'"), следовательно shell его не обрабатывает и как есть передает tar'у. Как я понимаю, если опустить кавычки ("tar xf foo.tar *.c"), shell сама развернет шаблон в список файлов и передаст его программе.
PS. А много ли народу пользовалось сей возможностью tar'а? Т.е. передавали ему шаблон в одинарных кавычках...

"Обновление GNU tar 1.16"
Отправлено Damon , 12-Ноя-06 08:32 
Тьфу, извеняюсь, пропустил кусок:
"прошлые версии gnu tar извлекали из архива все файлы заканчивающиеся на ".c""
-- вопрос снимается...

"Обновление GNU tar 1.16"
Отправлено nowinter , 12-Ноя-06 11:04 
агуенно, девелоперы во всей красе. сначала - тудой, потом - судой. чтоб враг, мля, не рассламлялся

"Обновление GNU tar 1.16"
Отправлено rihad , 12-Ноя-06 18:33 
> --to-command - передача вывода команды tar через pipe заданной программе;

GNU в очередной раз идет врознь с одной из основных философий Unix: объединение нескольких простых команд, выполняющих одну специфическую задачу для решения одной сложной задачи. На фига им было дублировать фунционал шелла для пайпов я не пойму. Биты шлифуют? Или им показалось что не на всех юниксах есть шелл? :) Или на кофеварке, где шеллу не место, tar будет зерна кофе на лету распаковывать?..


"Обновление GNU tar 1.16"
Отправлено kait , 13-Ноя-06 05:20 
А как с помощью шелла передать вывод команды tar уже работающей программе? (я честно не знаю!)

"Обновление GNU tar 1.16"
Отправлено GateKeeper , 13-Ноя-06 08:41 
Возможно, через тот же pipe? Или "именованный канал" (fifo)?

"Обновление GNU tar 1.16"
Отправлено www.andr.ru , 13-Ноя-06 14:34 
> GNU в очередной раз идет врознь с одной из основных философий Unix

GNU, linux и даже BSD - уже давно не UNIX.
UNIX - это вот
        http://cm.bell-labs.com/plan9/
        http://metacomputer.ru/plan9/

т.е. не она сама, а самая что ни на есть философия UNIX.
все остальные нагло пользуются чужой торговой маркой.
вообще только очень не ленивому человеку могла прийти в голову идея писать.
   --wildcard-i-do-not-use-now
умная голова рукам покоя не даёт :-)

> А как с помощью шелла передать вывод команды tar

man tar
-O      (x, t modes only) In extract (-x) mode, files will be written to
             standard out rather than being extracted to disk.  In list (-t)
             mode, the file listing will be written to stderr rather than the
             usual stdout.