Bug 9226

Summary: Не извлекает без полных путей к файлам (ключ --no-absolute-filenames)
Product: Sisyphus Reporter: Vitaly Lipatov <lav>
Component: cpioAssignee: placeholder <placeholder>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: glebfm, ldv, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=42189

Description Vitaly Lipatov 2006-03-10 22:45:26 MSK
Задача: извлечь файл из архива в текущий каталог. В архиве файл находится в  
подкаталоге (например, ./bin/cpio в пакете cpio)  
Пишем:  
$ cat cpio*rpm | rpm2cpio | cpio --no-absolute-filenames -i "*cpio"  
cpio: ./bin/cpio: open: No such file or directory 
484 blocks 
 
Такое впечатление что он этот параметр игнорирует.
Comment 1 Evgeny Sinelnikov 2006-03-11 00:02:00 MSK
должно помочь: 
cat cpio*rpm | rpm2cpio | cpio --no-absolute-filenames -id "*cpio" 
 
Но извлечения "без полных" путей от --no-absolute-filenames ожидать не стоит. 
Делов в том, что: 
`--no-absolute-filenames' 
Create all files relative to the current directory in copy-in 
mode, even if they have an absolute file name in the archive. 
 
То есть оно поможет извлечь файлы с полными путями в некоторый каталог 
в том случае, когда, внутри cpio, они расположены по абсолютным путям. 
 
При этом смену пути извлечения, cpio рассматривает, как смену имени файла, 
для чего помогает опция -r, но при это требуется интерактивный ввод нового 
имени файла. 
 
Comment 2 Dmitry V. Levin 2006-03-11 02:14:05 MSK
sin@ прав, опции --no-absolute-filenames и --absolute-filenames предназначены
для решения другой задачи.

В cpio >= 2.6-alt6 я включил опцию --no-absolute-filenames по умолчанию и
добавил опцию --absolute-filenames.
Использование --absolute-filenames применительно к untrusted input опасно и
категорически не рекомендуется.
Comment 3 Vitaly Lipatov 2006-03-11 10:16:09 MSK
Понял. Принял желаемое за действительное. То есть распаковывать, а дальше 
своими силами... 
Всем спасибо.