Имена файлов с обозначением ./ в файлах cpio, созданных с помощью mac

238
Tero

Я хотел бы использовать мой Mac для создания файлов cpio для использования в Linux. Имена файлов кажутся «./name» при создании в Mac. Когда cpio создан в linux, имя просто «имя». У sw, который мне нужно использовать, есть некоторые проблемы с этим, поэтому мой вопрос: есть ли какой-нибудь флаг или что-то, что можно было бы использовать, чтобы избавиться от этого префикса "./"? В противном случае они, кажется, работают нормально.

0

1 ответ на вопрос

0
ruario

Было бы интересно увидеть команду, которую вы используете для создания архивов cpio. Я подозреваю, что вы используете find для генерации списка, и разница, вероятно, связана с тем, как BSD find и GNU find распечатывают свои соответствующие списки результатов.

В любом случае вы, вероятно, можете обойти это, вставив команду sed между find и cpio, чтобы убрать ./ из передней части имен файлов, например:

find folder | sed 's,^\./,,' | cpio -ov >/tmp/test.cpio 

В любом случае форматы cpio имеют различные ограничения, которые делают их менее пригодными в качестве архивов в современных системах. Поэтому было бы лучше использовать GNU tar или BSD tar для создания архивов pax, например:

bsdtar --format=pax -cvf /tmp/test.tar folder