Я отримав програмне забезпечення Unix як стислий файл cpio. Яка найкраща команда для вилучення файлів?
Я отримав програмне забезпечення Unix як стислий файл cpio. Яка найкраща команда для вилучення файлів?
Відповіді:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Хоча це старе питання, воно відображається високо в Google, тому я подумав, що можу оновити його. Я погоджуюсь із прийнятою відповіддю загалом, але вам слід додати "--no-absol-file-files", якщо ви не збираєтесь перезаписати важливі системні файли на своїй машині. Також особисто я віддаю перевагу "zcat" над "gzip -cd" або "gunzip -c".
Нарешті, зауважте, що вам потрібно запустити cpio як root (наприклад, sudo), якщо ви виймаєте кореневу файлову систему, що містить вузли пристроїв.
На цій сторінці у Вікіпедії cpio
є хороші нотатки.
Детальніше див. У cpio
посібнику .
Посилання з тієї ж сторінки Вікіпедії обговорює порівняння з tar
архівами .
І ось приклад використання cpio
з tar
форматом .
Наприклад, витягнути архівний вміст / etc / httpd / у поточний каталог, створивши підкаталоги ./etc/httpd/
mkdir restored-etc-httpd
cd restored-etc-httpd
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"
Прийнята відповідь і Метт були мені корисними, але мене на деякий час затупили через три деталі:
--no-absolute-filenames
повинен передувати шаблону в командному рядку/
з імен файлів, відповідна схема також повинна опускати ведучу/
man cpio
те, що бачив?