Bug 9226 - Не извлекает без полных путей к файлам (ключ --no-absolute-filenames)
: Не извлекает без полных путей к файлам (ключ --no-absolute-filenames)
Status: CLOSED NOTABUG
: Sisyphus
(All bugs in Sisyphus/cpio)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2006-03-10 22:45 by
Modified: 2006-03-11 10:16 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-03-10 22:45:26
Задача: извлечь файл из архива в текущий каталог. В архиве файл находится в  
подкаталоге (например, ./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 From 2006-03-11 00:02:00 -------
должно помочь: 
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 From 2006-03-11 02:14:05 -------
sin@ прав, опции --no-absolute-filenames и --absolute-filenames предназначены
для решения другой задачи.

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