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

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

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

решение1

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

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

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

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

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

Связанный контент