Mac으로 생성된 cpio 파일에 ./로 표시된 파일 이름

Mac으로 생성된 cpio 파일에 ./로 표시된 파일 이름

Mac을 사용하여 Linux에서 사용할 cpio 파일을 만들고 싶습니다. Mac에서 생성할 때 파일 이름은 "./name"인 것 같습니다. Linux에서 cpio가 생성되면 이름은 "name"입니다. 제가 사용해야 하는 SW에는 몇 가지 문제가 있으므로 제 질문은 "./" 접두사를 제거하는 데 사용할 수 있는 플래그나 것이 있습니까? 그렇지 않으면 제대로 작동하는 것 같습니다.

답변1

cpio 아카이브를 생성하는 데 사용하는 명령을 보는 것은 흥미로울 것입니다. 나는 당신이 목록을 생성하기 위해 find를 사용했다고 생각하며 그 차이점은 아마도 BSD find와 GNU find가 각각의 결과 목록을 인쇄하는 방식 때문일 것입니다.

어떤 경우든 find와 cpio 사이에 sed 명령을 삽입하여 파일 이름 앞부분의 ./를 제거하면 이 문제를 해결할 수 있습니다. 예를 들면 다음과 같습니다.

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

어쨌든 cpio 형식에는 최신 시스템의 아카이브로 적합하지 않게 만드는 다양한 제한 사항이 있습니다. 따라서 GNU tar 또는 BSD tar를 사용하여 pax 아카이브를 만드는 것이 더 좋습니다. 예를 들면 다음과 같습니다.

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

관련 정보